如何在方法2中使用方法1变量

时间:2012-01-29 10:50:41

标签: python

我是python的新手,也是编程新手。我有问题如何在方法中也使用方法1中的变量。

实施例

 class abc(self):
        def method1 (self,v1):
           v1 = a+b
             return v1 # want to use this value in method 2
        def method2(self)
               v2 * v1 = v3 

由于

4 个答案:

答案 0 :(得分:1)

method2"知道"它在等待争论:

def method2(self,v1): #note v1 was added here
   v2 * v1 = v3 #what does that suppse to do? [look my "third note"]

另请注意:您还需要将v2传递给method2()
第三点:你究竟想在v2 * v1 = v3做什么?也许你的意思是v3 = v1 * v2

答案 1 :(得分:1)

使用v1使self成为实例变量,即self.v1 = a+bv2 * self.v1 = v3。但是第二个命令应该如下所示:v3 = v2 * self.v1v2未定义的问题仍然存在。

请注意,使用此方法时,必须在method1之前调用method2,否则在处理method2期间将不会定义self.v1(必须如此)。 amit的方法更清晰。

学习python好运。这是一门很棒的语言。

答案 2 :(得分:0)

要在整个类中使用值,您需要将该值绑定到其实例的属性。

例如:

class Abc(object):     # put object here, not self

    def method1(self):
        self.v1 = 3 + 7  # now v1 is an attribute

    def method2(self)
        return 4 * self.v1

a = Abc()
a.method1()
a.v1   # -> 10
a.method2()  # -> 40

但是在调用某个方法后,通常不是一个好的做法,所以你也应该为v1提供一个默认值。将其放在__init__

class Abc(object):

    def __init__(self):
        self.v1 = 0

    def method1(self):
        self.v1 = 3 + 7

    def method2(self)
        return 4 * self.v1

a = Abc()
a.v1  # -> 0
a.method1()
a.v1   # -> 10
a.method2()  # -> 40

答案 3 :(得分:0)

另一种方法是使用全局变量。

def a():
    global v
    v = 10;

def b():
    print v

if __name__=='__main__':
    a()
    b()