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