python导入嵌套类
我是python新手。这不是我的实际情况,只是我对导入嵌套类的好奇 所以我有一个main.py和test.py 测试.py:python导入嵌套类,python,import,nested,Python,Import,Nested,我是python新手。这不是我的实际情况,只是我对导入嵌套类的好奇 所以我有一个main.py和test.py 测试.py: class one(): class two(): def twodef(): pass 因此,在我的main.py中,我可以执行“导入测试”或“从测试导入一个”。但我在执行以下操作时出错:“来自测试。一个导入两个。” error : ImportError: No module named one 任何人都能解释这一点吗?内部测试
class one():
class two():
def twodef():
pass
因此,在我的main.py中,我可以执行“导入测试”
或“从测试导入一个”
。但我在执行以下操作时出错:“来自测试。一个导入两个。”
error : ImportError: No module named one
任何人都能解释这一点吗?内部测试.py
class One:
class Two:
@staticmethod
def twodef():
print("twodef")
我的主要逻辑:
from test import One
two_obj = One.Two
two_obj.twodef()
删除类定义末尾的括号
编码标准:
from test import One
two_obj = One.Two
two_obj.twodef()
始终以大写字母声明类名(class one=>class one)
首选项:
from test import One
two_obj = One.Two
two_obj.twodef()
如果python文件中只有一个类,请始终使用该类名命名该文件,但使用小写字母。(test.py=>one.py)。我以前认为这是一个标准,但它似乎被广泛应用。我之所以使用它,是因为,如果项目规模增长,并且最终拥有大量的类和模块,那么它是合乎逻辑的,并且易于访问,而不是访问模块来查找类名。
您可以执行以下操作:
from test import one
two_object = one.two()
two_object.twodef()
对于存在于模块全局范围内的名称(基本上是顶级模块代码中定义的名称),只能从模块导入名称执行。在较低级别作用域中定义的名称(例如,在示例中的类中定义的名称)是不可导入的。您需要导入包含名称的对象,并从那里访问它
from test import one
my_two = one.two()