在本文中,我们将学习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类。根据包的结构,您可以根据需要进行更深入的研究。
如果您对本教程有任何疑问,请在评论部分中提及。