这是一个名为“ importable”的文件,我尝试在其中导入方法测试功能。
class SoonImported:
def __init__(self, x):
self.x = x
def methodTest(self):
print(self.x)
在另一个文件中,我有这行代码无法更改(因为我的示例基于家庭作业)。
from importable import SoonImported, methodTest
当我尝试运行此脚本时,它给我一个导入错误,并说它“无法导入名称'methodtest'”。为了使它正常工作,我应该如何纠正即将导入的类?
感谢您的帮助。
答案 0 :(得分:3)
似乎methodTest
是在SoonImported
内部定义的。因此,它将像这样from importable import SoonImported
来解决,然后methodTest
将被称为
instance = SoonImported()
instance.methodTest()
答案 1 :(得分:0)
没有类的其余部分就无法从类中导入方法,因为该方法仅存在于类的上下文中。想想进口就像借钱一样。您想向朋友借割草机。除了那里的东西,就像试图从朋友那里借割草机而不先与任何人交朋友。如果您没有任何朋友,您怎么能期望从任何人那里借用割草机?
答案 2 :(得分:0)
假设您的作业写得正确,似乎methodTest应该是SoonImported类的函数而不是方法。我猜在第二个文件中,您的行类似于以下内容:
SoonImported_object = SoonImported("Some Text")
methodTest(SoonImported_object)
如果是这种情况,那么methodTest不是方法,而是函数,应将其定义为以下内容;
class SoonImported:
def __init__(self, x):
self.x = x
def methodTest(SoonImported_object):
print(SoonImported_object.x)
答案 3 :(得分:0)
只需导入类并像平常一样使用它
importable.py
class SoonImported:
def __init__(self, x):
self.x = x
def method_test(self):
print(self.x)
vash.py
from importable import SoonImported
a = SoonImported(1)
a.method_test()
python3.7 vash.py 1