我知道这是一个新手问题。但。我有一个非常简单的模块,包含一个类,我想调用模块从另一个模块运行。像这样:
#module a, to be imported
import statements
if __name__ == '__main__':
class a1:
def __init__(self, stuff):
do stuff
def run_proc():
do stuff involving 'a1' when called from another module
#Module that I'll run, that imports and uses 'a':
if __name__ == '__main__':
import a
a.run_proc()
然而,由于其他人可能很明显的原因,我得到错误属性错误:'模块'对象没有属性'run_proc'我是否需要这个类的静态方法,或者我的run_proc()方法一个类,我初始化一个实例?
答案 0 :(得分:4)
移动
if __name__ == '__main__':
在模块a到文件末尾并添加pass或一些测试代码。
你的问题是:
if __name__ == '__main__':
范围内的任何内容仅在顶级文件中考虑。import statements
class a1:
def __init__(self, stuff):
do stuff
def run_proc():
#do stuff involving 'a1' when called from another module
if __name__ == '__main__':
pass # Replace with test code!
import a
def do_a():
A = a.a1() # Create an instance
A.run_proc() # Use it
if __name__ == '__main__':
do_a()