python:在类和外部构造函数之间传递值
我试图将值从一个类传递到另一个类,因此我在第一个和第二个类的构造函数之间传递值很好。但是,每当我试图从类构造函数中访问一些值时,它看起来并不是由该方法获取该变量 下面是名为file1.py的文件,其中包含类Foo:python:在类和外部构造函数之间传递值,python,class,Python,Class,我试图将值从一个类传递到另一个类,因此我在第一个和第二个类的构造函数之间传递值很好。但是,每当我试图从类构造函数中访问一些值时,它看起来并不是由该方法获取该变量 下面是名为file1.py的文件,其中包含类Foo: from file2 import * class Bar(): def __init__(self, foo): self.var = foo.h print("+++++++++++++++++++++++++") prin
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
我的问题是,每当我试图在function()中获取值时,我都会陷入这一部分。错误输出:
print" the values is : ",self.var
NameError: global name 'self' is not defined
你有两个问题。首先,
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()
函数
def
需要缩进,否则它不是类定义的一部分。@Jens-我认为这是一个复制粘贴错误,因为代码根本不会这样编译。@TigerhawkT3:我不知道def函数()
,因为\uuuuu init\uuuuu
我同意。大多数代码都需要缩进。只需粘贴代码,高亮显示,然后按Ctrl-k。不要缩进一些行来将它们放在一个块中,而是将其余的放在原处。突出显示并按Ctrl-k将为您完成所有工作。函数Function
将错过self
参数:def Function(self):
。此外,为什么在类初始化期间调用function
?实际上我知道我必须使用self和function,但我只在代码的底部键入了这两行b=Bar(Foo())function(),我忘了提到b.function(),谢谢!!!