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 花篮考学祝福语大全简短