在另一个模块python中调用变量

时间:2016-04-28 21:21:46

标签: python python-2.7 python-import

我正在尝试访问我在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()

1 个答案:

答案 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()中有class2class2必须从class1继承。但您仍然可以从其他包/模块中导入变量。

另请注意,var对于每个类的实例都是唯一的。