我有这个main.py,其中:
import uuid
class tools(object):
def generate_uuid(self):
return self.uuid.uuid4()
在我的调用程序callmain.py中,我有
import main
result = main.tool.generate_uuid()
print ("result")
如果我运行我的callmain.py:我得到了
" TypeError:generate_uuid()缺少1个必需的位置参数: '自'
如果我将自己添加到该行
result = main.tool.generate_uuid(self):
我得到了
NameError:name' self'未定义
如何解决这个问题?谢天谢地。
答案 0 :(得分:0)
因为你应该先从你的班级中创建一个对象。然后像这样调用你的子函数:
import main
result = tools()
result.generate_uuid()
print(result) # "result" is a string! you should just call result without any "".
答案 1 :(得分:0)
如果要使用类的模块,则必须首先创建该类的实例,并从该实例调用if,这样self参数将传递给该类的实例的有效引用。例如:
import main
tools_instance = main.tools()
result = tools_instance.generate_uuid()
您问题中显示的导入样式看起来像一个包。在包中,可以以特定方式安排python文件__init__.py
的文件夹,在此处记录Python Packages。来自文档的一个例子
parent/
__init__.py
one/
__init__.py
two/
__init__.py
three/
__init__.py
所以格式为
的包main/
__init__.py
tools/
__init__.py # Add function 'generate_uuid' in this file
可以按照以下方式使用:
import main
result = main.tools.generate_uuid()
print(result)