class Sing:
'''
定义某函数(方法)为静态,可以用@staticmethod装饰。
但这样此方法不可继承,而用@classmethod是可继承的。
'''
__instance=None
def __int__(self):
if not Sing.__instance:
print('__init__方法命名...')
else:
print('实例已创建',self.getInstance())
@classmethod #装饰为静态
def getInstance(cls): #注意这里参数不是实例而是类!
if not cls.__instance:
cls.__instance=Sing()
return cls.__instance
@staticmethod #装饰为静态
def pri(self):
print('产生实例')
class Side(Sing):
pass
s1=Sing()
print(s1.getInstance())
s2=Sing()
print(s2.getInstance())
print(Side().getInstance())
s3=Side()
print(s3.getInstance())
print(s3.pri()) #TypeError: pri() missing 1 required positional argument: 'self'
#pri方法用@staticmethod装饰,不能继承,出现错误!