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

Python 如何在方法2中使用方法1变量,python,Python,我对python和编程都是新手。我有一个问题,我怎样才能在方法中使用method1中的变量 范例 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 谢谢让方法2知道它正在等待参数:

我对python和编程都是新手。我有一个问题,我怎样才能在方法中使用method1中的变量

范例

 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 
谢谢

方法2
知道它正在等待参数:

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

使用
self
,即
self.v1=a+b
v2*self.v1=v3
使
v1
成为一个实例变量。但是第二个命令应该是这样的:
v3=v2*self.v1
。还有一个问题是
v2
没有定义

请注意,使用这种方法时,
method1
必须在
method2
之前调用,否则在处理method2时将不会定义
self.v1
(必须这样)。amit的方法更简洁


祝你学习python好运。这是一种很棒的语言。

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

例如:

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提供一个默认值。将其放置在
\uuuu init\uuuu
中:

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

还有一种方法是使用全局变量

def a():
    global v
    v = 10;

def b():
    print v

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

v2*v1=v3
应引发一个
SyntaxError
。另外,
method1
v1
参数被忽略。您使用什么教程学习编程?请用您正在使用的教程的名称或链接更新问题。不,我没有阅读任何书籍,只是观看在线教程,但现在我开始阅读非程序员编程…作者steven F.Lott:)关于
self
的内容不是类变量。它是一个实例变量。类变量附加到类对象,因此在所有实例之间共享-更罕见,但也很有用。仅为了理解>如果使用self.v1(使其成为实例methodosd1的属性),我可以访问调用中的任何位置,即使在method3或method4中,self.v1和v1@Shazib:是的,您也可以在其他方法中使用它
v1
是一个变量,它的作用域在方法结束时终止,
self.v1
就像在方法内部调用
a.v1
,因此它是
a
的一个属性(Abc
的一个实例)。您可以在中了解更多信息。请不要在此处使用global。此外,您在开始时也没有声明
v
。仅在需要时使用全局。