我试图将值从一个类传递给另一个类,所以我在第一个和第二个类的构造函数之间传递值的工作正常。但每当我尝试从类构造函数中访问某些值时,它看起来并不像该方法所采用的那样。
这是名为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
答案 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()