首页 > 解决方案 > 在类内外调用函数有什么好处?

问题描述

我不知道以下代码片段有什么区别?

第一的:

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

函数调用让我很困惑。

标签: python

解决方案


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


推荐阅读