我肯定这是微不足道的,但我想不出来。在
目录结构:
mylib/__init__.py
mylib/MyClass.py
init.py读取:
^{pr2}$在我的class.py公司名称:
class MyClass(object):
def __init__(self):
pass
我必须使用mylib.MyClass.MyClass(),当我想要的时候mylib.MyClass公司()
我认为要想让这个工作起来,我必须把所有的=[我的课。我的课]但那没用。在
你怎么做到的?在
注意。我理解这里发生了什么;文件本身就是一个名称空间,比如说,在一个文件中有多个类。但是,我在每个.py文件中只有一个类,所以我不需要这种详细程度。在
也就是说。 我有这个:
>>> import mylib
>>> tmp = mylib.MyClass.MyClass()
我想要这个:
>>> import mylib
>>> tmp = mylib.MyClass()
在您的
__init__.py
中,从import MyClass
开始,尝试from MyClass import MyClass
。在前一个命令将模块的名称导入到您的命名空间中;第二个命令从模块(在本例中是类的名称)中导入符号。在
另外,
__all__
应该是一个名称的列表,即字符串,而不是引用。在一般来说,在Python中,将类划分为一个文件没有任何好处,这样做有一些轻微的缺点。通常您的所有类都在一个文件中,并且用户已经能够以
mylib.MyClass
的身份访问您的类。在相关问题 更多 >
编程相关推荐