从另一个python文件和后续类使用python函数?

问题描述 投票:0回答:2

在学习了C ++中的OOP之后,我一直在学习使用python中的类。我正在开发一个项目,我在一个文件中定义了一个类,并且在单独的文件中使用了一个重要的函数。我必须在第一个文件中调用该类,但我得到了ImportError。很好,如果你能帮忙的话。

try1.朋友

from try2 import prnt

class a:
    def __init__(self):
        print("started")
    def func1(self):
        print("func1")

prnt()

try2.朋友

from try1 import a

b = a()
b.func1()

def prnt():
    b.func()

至于例如,在上面的例子中,当我运行try1.py时,我得到一个ImportError:无法导入名称'prnt'。

python class module
2个回答
0
投票

你绝对需要重新设计你的项目。即使你确实设法逃脱循环导入(即通过将import移动到函数内部 - 但不要这样做),你仍然会得到一个NameError: name 'b' is not defined,因为b没有在prnt中定义。

除非prnt无法在类a中定义(为什么?),考虑在第三个“utils”文件中定义prnt并将其导入try1.pytry2.py并将对象传递给它,以便它可以访问其所有属性。


-2
投票

只需运行您的代码,阅读错误,并从中扣除一些内容。当您运行它时,这是错误消息:

Traceback (most recent call last):
  File "C:\Users\Kilian\Desktop\Code\Garbage\tmp.py", line 7, in <module>
    from temp2 import prnt
  File "C:\Users\Kilian\Desktop\Code\Garbage\temp2.py", line 1, in <module>
    from tmp import a
  File "C:\Users\Kilian\Desktop\Code\Garbage\tmp.py", line 7, in <module>
    from temp2 import prnt
ImportError: cannot import name prnt

您的脚本正在尝试导入先前已尝试导入的内容。 Python可能会推断它无法导入它。 :)

© www.soinside.com 2019 - 2024. All rights reserved.