python静态方法实例
本文实例讲述了python静态方法。分享给大家供大家参考。
具体实现方法如下:
staticmethodFoundat:__builtin__
staticmethod(function)->method
Convertafunctiontobeastaticmethod.
Astaticmethoddoesnotreceiveanimplicitfirstargument.
Todeclareastaticmethod,usethisidiom:
classC:
deff(arg1,arg2,...):...
f=staticmethod(f)
Itcanbecalledeitherontheclass(e.g.C.f())oronan
instance
(e.g.C().f()). Theinstanceisignoredexceptforitsclass.
StaticmethodsinPythonaresimilartothosefoundin
JavaorC++.
Foramoreadvancedconcept,seetheclassmethodbuiltin.
classEmployee:
"""EmployeeclasswithstaticmethodisCrowded"""
numberOfEmployees=0 #numberofEmployeescreated
maxEmployees=10 #maximumnumberofcomfortableemployees
defisCrowded():
"""Staticmethodreturnstrueiftheemployeesarecrowded"""
returnEmployee.numberOfEmployees>Employee.maxEmployees
#createstaticmethod
isCrowded=staticmethod(isCrowded)
def__init__(self,firstName,lastName):
"""Employeeconstructor,takesfirstnameandlastname"""
self.first=firstName
self.last=lastName
Employee.numberOfEmployees+=1
def__del__(self):
"""Employeedestructor"""
Employee.numberOfEmployees-=1
def__str__(self):
"""StringrepresentationofEmployee"""
return"%s%s"%(self.first,self.last)
#mainprogram
defmain():
answers=["No","Yes"] #responsestoisCrowded
employeeList=[] #listofobjectsofclassEmployee
#callstaticmethodusingclass
print"Employeesarecrowded?",
printanswers[Employee.isCrowded()]
print"\nCreating11objectsofclassEmployee..."
#create11objectsofclassEmployee
foriinrange(11):
employeeList.append(Employee("John","Doe"+str(i)))
#callstaticmethodusingobject
print"Employeesarecrowded?",
printanswers[employeeList[i].isCrowded()]
print"\nRemovingoneemployee..."
delemployeeList[0]
print"Employeesarecrowded?",answers[Employee.isCrowded()]
if__name__=="__main__":
main()
希望本文所述对大家的Python程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短