使用python在同一个类中调用变量

问题描述 投票:1回答:3

我试图调用函数中定义的变量,在同一个类的另一个函数内,但使用self不起作用。

class Project():
    def function1(self):
        a='hello world,'

    def function2(self):
        b=self.a + ' I am alive'

Project1=Project()
print Project1.function1()
print Project1.function2()

python说:Project instance has no attribute 'a'

我不太清楚如何使用类。我没有使用__init__因为我没有任何东西可以放,即使我不正式需要它也许有办法添加它?

谢谢你的帮助。

python class variables
3个回答
0
投票

你的ab变量是本地的。您只能在方法范围中使用这些变量。如果你想要一个类属性(与所有类共享),你必须设置像self.a = ...self.b = ...。在python中没有必要创建构造函数方法__init__既不初始化这些属性。但是在你的例子中,如果你在functions2之前调用function1它会崩溃,因为你使用的是一个不存在的属性。然后建议初始化属性。您可以像这样初始化属性:

class Project:
    a = ''
    b = ''

    def function1(self):
        self.a='hello world,'

    def function2(self):
        self.b=self.a + ' I am alive'

要记住的更多事情: 变量是小写和蛇案例:project1 = Project() 2.您的打印件不会打印任何内容,因为您的功能不会返回任何内容。你必须返回类似的东西:

def function1():
    return 'hello world,'

或者如果你需要设置和打印:

def function1():
    self.a = 'hello world,'
    return self.a

3
投票

你需要的是:

    def function1(self):
      self.a = 'hello world, '

function1中,a是有人说的局部变量,而self.a是附加到当前对象的属性。


0
投票

function1(self)你需要将a=改为self.a=。在原始代码中,您创建了一个局部变量a,您需要显式使用self将变量a附加到对象的实例并在函数调用之间保持持久性。

© www.soinside.com 2019 - 2024. All rights reserved.