我对面向对象编程相当新,并对以下内容提出疑问。
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()。怎么会这样呢? 谢谢。
答案 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)