从类中的函数调用函数

时间:2016-03-24 02:49:07

标签: python function class oop

我对面向对象编程相当新,并对以下内容提出疑问。

class TestClass():
    def test(arg1,arg2):
        global message
        print(arg1,arg2)
        message=str(arg1)+' '+str(arg2)
        print message

    def test0( self, twoword ):       
        global word1,word2
        word1=twoword.split('-')[0]
        word2=twoword.split('-')[1]
        print(word1,word2)
        TestClass.test(word1,word2)

程序的功能是多余的,可以简化,但我希望从test()调用test()。怎么会这样呢? 谢谢。

2 个答案:

答案 0 :(得分:0)

您需要使test成为静态方法(可以在没有类实例的情况下调用的方法)。您可以使用staticmethod装饰器来完成。

class TestClass():
    @staticmethod  # <---
    def test(arg1, arg2):
        global message
        print(arg1,arg2)
        message=str(arg1)+' '+str(arg2)
        print message

    def test0(self, twoword):
        global word1,word2
        word1=twoword.split('-')[0]
        word2=twoword.split('-')[1]
        print(word1,word2)
        TestClass.test(word1,word2)

答案 1 :(得分:0)

如果您正在寻找功能重载 Python function overloading

如果您只想使此代码有效,请在测试之上添加@staticmethod。

class TestClass():
   @staticmethod
   def test(arg1,arg2):
       global message
       print(arg1,arg2)
       message=str(arg1)+' '+str(arg2)
       print message

   def test0( self, twoword ):
       word1=twoword.split('-')[0]
       word2=twoword.split('-')[0]
       global word1,word2
       print(word1,word2)
       TestClass.test(word1,word2)