导入多个类的最佳方法

2024-09-27 21:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个python文件中定义了几个类。我的愿望是用这些创建一个图书馆。理想情况下,我希望以这样一种方式导入库:我可以使用没有前缀的类(如mylibrary.myclass类()与myclass()相反),如果你可以这样称呼他们,我不太确定,因为我是初学者。你知道吗

实现这一点的正确方法是什么,或者说最好的结果是什么?在初始化中定义所有类?在一个单独的文件中定义它们AllMyClasses.py?或者我应该为库目录中的每个类都有一个单独的文件,比如头等舱.py, 二级.py等等

我意识到这个问题对google来说应该很简单,但是由于我对python和编程还是相当陌生,所以我还没有弄清楚在这个上下文中,对于一个问题,什么是正确的关键字(比如我对“prefix”的不确定性)


Tags: 文件方法py目录定义图书馆方式myclass
2条回答

如果是供您个人使用,您可以将所有类Class1Class2。。。在myFile.py中并使用它们调用import myFile(不带.py扩展名)

import myFile

myVar1 = myFile.Class1()
myVar2 = myFile.Class2()

从另一个脚本中。如果希望能够使用不带文件名前缀的类,请按以下方式导入文件:

from myFile import *

请注意,要导入的文件应该位于Python可以找到它的目录中(与运行脚本的目录相同,或者位于PYTHONPATH中的目录)。你知道吗

如果您想创建一个Python模块以进行分发,则需要_init_。以下是说明:Distributing Python Modules

检查Python的样式指南PEP 8on imports后编辑:

Wildcard imports (fromimport) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools

所以在这个例子中你应该使用

from myFile import Class1, Class2

更多信息可以在python站点上的教程modules(单个文件)或packages(在包含__init__.py文件的目录中时)中找到。你知道吗

建议的方法(根据the style guide)是明确说明每个类导入。你知道吗

from my_module import MyClass1, MyClass2
object1 = MyClass1()
object2 = MyClass2()

您还可以缩短模块名称:

import my_module as mo
object = mo.MyClass1()

建议避免使用from my_module import *,因为它可能会让人困惑(即使对于某些事情是推荐的方法,比如tkinter

相关问题 更多 >

    热门问题