这和静态方法有什么区别呢?
来源:4-14 本章小结

木鸟
2019-03-18
class A:
… def abc():
… print(“hi”)
…A.abc()
hi
好像加不加@staticmethod都能达到目的啊。 我原本以为没有传入self实例会报错,然而并没有。。。
我把示例中的代码
#@staticmethod
def valid_str(date_str):
year, month, day = tuple(date_str.split("-"))
if int(year)>0 and (int(month) >0 and int(month)<=12) and="">0 and int(day)<=31):
return True
else:
return False
装饰器也注释掉了,运行完好
写回答
3回答
-
weixin_慕少2488111
2020-05-18
没有错是因为你用了A.abc()的方式去呼叫他
此时解释器是取得了A类的abc类变量,然后再对abc变量执行__call__魔法函数
如果你用a = A() a.abc()
的方式去调用
就会报错了
00 -
Demin
2020-02-16
我也好奇为什么会这样?是不是把abc()当成类似类变量了?
012020-02-17 -
bobby
2019-03-18
你这里代码能格式化一下吗?没有格式化的代码看起来不清楚
通过这里格式化
022019-04-01
相似问题