我正在尝试访问我在Python中另一个模块中的一个函数中创建的变量来绘制图形但是,Python无法找到它们。 下面是一些示例代码:
class1:
def method1
var1 = []
var2 = []
#Do something with var1 and var2
print var1
print var2
return var1,var2
sample = class1()
sample.method1
这里是第2课
from class1 import *
class number2:
sample.method1()
这是按预期执行并打印var1和var2但我不能在类2中调用var1或var2
固定编辑: 如果其他人有这个问题,我通过导入上面的第二类来修复它
from Module1 import Class1,sample
然后在class2里面
var1,var2 = smaple.method1()
答案 0 :(得分:0)
您发布的代码充满了语法错误,正如Francesco在评论中所说的那样。也许你可以粘贴正确的。
您不是从类导入,而是从包或模块导入。另外,除非是callable,否则不要“调用”变量。
在你的情况下,你可以:
file1.py:
class class1:
def __init__(self): # In your class's code, self is the current instance (= this for othe languages, it's always the first parameter.)
self.var = 0
def method1(self):
print(self.var)
sample = class1()
file2.py:
from file1 import class1, sample
class class2(class1):
def method2(self):
self.var += 1
print(self.var)
v = class2() # create an instance of class2 that inherits from class1
v.method1() # calls method inherited from class1 that prints the var instance variable
sample.method1() # same
print(v.var) # You can also access it from outside the class definition.
v.var += 2 # You also can modify it.
print(v.var)
v.method2() # Increment the variable, then print it.
v.method2() # same.
sample.method1() # Print var from sample.
#sample.method2() <--- not possible because sample is an instance of class1 and not of class2
请注意,要method1()
中有class2
,class2
必须从class1
继承。但您仍然可以从其他包/模块中导入变量。
另请注意,var
对于每个类的实例都是唯一的。