在本文中,我们将学习Python中的软件包。包可帮助我们以有组织的层次结构构建包和模块。让我们看看如何在Python中创建包。
我们在目录内包含了一个__init__.py文件,以告诉Python当前目录是一个包。每当您要创建包时,都必须在目录中包含__init__.py文件。您可以在内部编写代码,也可以根据需要将其保留为空白。它不会打扰Python。
请按照以下步骤在Python中创建一个包
创建一个目录并在其中包含__init__.py文件,以告知Python当前目录是一个包。
包括其他所需的子软件包或文件。
接下来,使用有效的import语句访问它们。
让我们创建一个具有以下结构的简单包。
套餐(大学)
__init__.py
学生
系
转到笔记本电脑或台式机上的任何目录,然后创建上述文件夹结构。创建上述文件夹结构后,在相应文件中包含以下代码。
# student.py
class Student:
def __init__(self, student):
self.name = student['name']
self.gender = student['gender']
self.year = student['year']
def get_student_details(self):
return f"Name: {self.name}\nGender: {self.gender}\nYear: {self.year}"
# faculty.py
class Faculty:
def __init__(self, faculty):
self.name = faculty['name']
self.subject = faculty['subject']
def get_faculty_details(self):
return f"Name: {self.name}\nSubject: {self.subject}"我们在student.py和faculty.py文件中具有以上内容。让我们创建另一个文件来访问其中的分类文件。现在,在包目录中创建一个名为testing.py的文件,并包含以下代码。
# testing.py
# importing the Student and Faculty classes from respective files
from student import Student
from faculty import Faculty
# creating dicts for student and faculty
student_dict = {'name' : 'John', 'gender': 'Male', 'year': '3'}
faculty_dict = {'name': 'Emma', 'subject': 'Programming'}
# creating instances of the Student and Faculty classes
student = Student(student_dict)
faculty = Faculty(faculty_dict)
# getting and printing the student and faculty details
print(student.get_student_details())
print()
print(faculty.get_faculty_details())如果运行testing.py文件,则将得到以下结果。
输出结果
Name: John Gender: Male Year: 3 Name: Emma Subject: Programming
我们已经看到了如何在Python中创建和访问包。这是一个简单的程序包。包中可能有很多子包和文件。让我们看看如何访问子包模块。
使用以下结构创建目录
套餐(大学)
__init__.py
main.py
...
__init__.py
分包(学生)
testing.py
复制上面的学生代码并将其放在此处。现在,让我们看看如何在testing.py文件中访问它。在testing.py文件中添加以下内容。
# testing.py
from student.main import Student
# creating dicts for student
student_dict = {'name' : 'John', 'gender': 'Male', 'year': '3'}
# creating instances of the Student class
student = Student(student_dict)
# getting and printing the student details
print(student.get_student_details())如果运行testing.py文件,则将得到以下结果。
输出结果
Name: John Gender: Male Year: 3
我们已经使用小圆点(。)从子程序包student中的main.py文件访问了Student类。根据包的结构,您可以根据需要进行更深入的研究。
如果您对本教程有任何疑问,请在评论部分中提及。