如何导入python类的moudle?

2024-04-26 10:08:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个主.py,其中:

import uuid
class tools(object):
  def generate_uuid(self):
    return self.uuid.uuid4()

在我的呼叫程序中呼叫主.py,我有

import main
result = main.tool.generate_uuid()
print ("result")

如果我跑我的车呼叫主.py:我明白了

"TypeError: generate_uuid() missing 1 required positional argument: 'self'

如果我把self添加到行中 result = main.tool.generate_uuid(self):我明白了

NameError: name 'self' is not defined

如何解决这个问题?谢谢你的帮助。你知道吗


Tags: pyimportself程序returnobjectuuidmain
2条回答

因为你应该先从你的类中创建一个对象。然后像这样调用子函数:

import main
result = tools()
result.generate_uuid()
print(result) # "result" is a string! you should just call result without any "".

如果要使用类的模块,必须首先创建该类的实例,然后从该实例调用If,这样就可以向自参数传递对该类实例的有效引用。例如:

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)

相关问题 更多 >