我在https://blog.vu-review.com学习过python,但我不知道以下代码段之间有什么区别?
第一:
class A:
def __init__(self, v):
self.v=v
def main(self):
self.func_A(self.v)
def func_A(self, t):
print t
致电func_A
时:
A("sometext").main()
第二:
class A:
def __init__(self, v):
self.v=v
def main(self):
func_A(self.v)
def func_A(t):
print t
并且在致电func_A
时:
A("sometext").main()
函数调用让我很困惑。
答案 0 :(得分:0)
致电self
时,您应该丢失func_A(self.v)
,而应该改用self.func_A(self.v)
在第一个示例中,类v
的属性A
通过main
传递给func_A(self.v)
函数,并被打印
class A:
def __init__(self, v):
self.v=v
def func_A(self, t):
print(t)
A("sometext").func_A('text')
输出为sometext
,因为您将sometext
传递为func_A
的参数
在第二个示例中做同样的事情,唯一的区别是func_A
是在类外部定义的。
class A:
def __init__(self, v):
self.v=v
def main(self):
func_A(self.v)
def func_A(t):
print(t)
A("sometext").main()
由于属性sometext
设置为A.v
,因此此处的输出为sometext