创建和访问Python包

在本文中,我们将学习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.pyfaculty.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类。根据包的结构,您可以根据需要进行更深入的研究。

    结论

    如果您对本教程有任何疑问,请在评论部分中提及。