动态语言有其魅力,把静态语言里的好多规则都打破了,如题提到的这些函数,实例可以访问静态的属性,函数等等,为编程提供了很多方便,但是实际开发还是要遵守些规则,不然最后会混淆不利于代码的阅读
class Game:
top_score = 0
def __init__(self, name):
self.name = name
@staticmethod
def show_help():
print("显示游戏规则")
@classmethod
def show_top_score(cls):
print("历史最高分: %s" % cls.top_score)
def start_game(self):
print("%s start game!" % self.name)
Game.show_help()
Game.show_top_score()
g = Game("小强")
g.start_game()
1、对于不需要访问实例属性和类属性的函数定义成静态函数
2、需要访问类属性的定义成类函数
3、需要访问实例属性的定义成实例函数