以下代码段给出了python2错误,但python3没有错误
class Steps(object):
def step(self,msg="Default"):
if not hasattr(self,"funky_attr"):
print('No attr')
print(self)
print(msg)
class FirstTest(Steps):
@classmethod
def test_setup(cls):
cls.step("This is the message")
if __name__ == '__main__':
C = FirstTest()
C.test_setup()
使用python 2会产生错误:
TypeError:必须使用CifsTest实例调用未绑定方法step() 作为第一个参数(取而代之的是str实例)
使用python 3时,它运行良好:
没有属性
这是消息#注意,这里的“自我”是str
默认
这是正确的行为吗?
Python3允许从类方法中调用实例方法吗?