如何导入python类的模块?

时间:2017-08-24 19:53:14

标签: python

我有这个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'未定义

如何解决这个问题?谢天谢地。

2 个答案:

答案 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)