python:在类和外部构造函数之间传递值

时间:2016-04-03 04:37:20

标签: python class

我试图将值从一个类传递给另一个类,所以我在第一个和第二个类的构造函数之间传递值的工作正常。但每当我尝试从类构造函数中访问某些值时,它看起来并不像该方法所采用的那样。

这是名为file1.py的文件,其中包含类Foo:

from file2 import *
class Bar():
    def __init__(self, foo):
        self.var = foo.h
        print("+++++++++++++++++++++++++")
        print(self.var)
    def function():
        print" the values is : ",self.var
    function()
b = Bar(Foo())

然后这是我的file2.py代码:

class Foo():
    def __init__(self):
        self.x = 6
        self.y = 2
        self.h = self.x+self.y

我的问题是每当我尝试在函数内部获取值时()我都陷入了这一部分。错误输出:

print" the values is : ",self.var
NameError: global name 'self' is not defined

1 个答案:

答案 0 :(得分:0)

你有两个问题。首先,function是一个实例方法,因此需要self参数。其次,您将function()作为类定义的一部分进行调用,我不知道为什么。我认为它应该是一个成员方法,它应该在创建实例后调用。

from file2 import *
class Bar():
    def __init__(self, foo):
        self.var = foo.h
        print("+++++++++++++++++++++++++")
        print(self.var)
    def function(self):
        print " the values is : ",self.var

b = Bar(Foo())
b.function()