在内部和外部类之间调用函数有什么好处?

时间:2019-05-16 04:23:38

标签: python

我在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()

函数调用让我很困惑。

1 个答案:

答案 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