温故而知新,可以为师矣!又到了回顾知识的时间啦,让我带着大家来复习一下面向对象的知识点!类:classclassPerson:definit(self,name):对象调用方法的时候,会自动把实例对象作为参数传给方法的第一个参数属性self。namenamedefplay(self):print(self。name)classGuangdong(Person):重写defplay(self):print(子类方法)super()。play()可以同时使用两个play方法,子类的和父类的classSichuan(Person):passclassHunxue(Guangdong,Sichuan):passbdPerson(bd)通过new方法,创建实例对象,实例化的同时调用initbd。play()print(Guangdong。mro())print(Hunxue。mro())xbGuangdong(小白)xb。play()定义一个账户类:可以创建账户、存款、取款、查询余额、以及销户等操作classAccount:definit(self,name,pwd,money0):self。namenameself。pwdpwdself。moneymoney存款defdeposit(self,pwd,money):ifpwd!self。pwd:print(密码错误)else:ifisinstance(5,(float,int))andmoney1:self。moneymoneyprint(存款金额是{},目前现有余额{}。format(money,self。money))else:print(请输入正确的金额)取款defdraw(self,pwd,money):ifpwd!self。pwd:print(密码错误)else:ifisinstance(5,(float,int))andmoneyself。money:self。moneymoneyprint(取款金额是{},目前现有余额{}。format(money,self。money))查询defquery(self,pwd):ifpwd!self。pwd:print(密码错误)else:print(目前现有余额是{}。format(self。money))销户defdel(self):pwdint(input(请输入您的密码:))ifpwd!self。pwd:print(密码错误)else:whileself。money:moneyint(input(请输入取款金额:))self。draw(pwd,money)print(删除成功)bdAccount(bd,123,50)面向对象高级classPerson:definit(self):print(这是初始化函数)重写defnew(cls):创建实例对象print(这是实例化方法)继承父类的new方法,并返回实例对象returnsuper()。new(cls)defrepr(self):returnbdcPerson()首先调用new方法print(c)测试列表推导式和不用列表推导那一种更快importtimeclassNumber():defenter(self):获取开始时间self。starttime。time()defexit(self,exctype,excval,exctb):获取结束时间self。endtime。time()runtimeself。endself。startreturnruntime功能执行之前先执行enter功能功能执行之后后执行exitwithNumber():〔iforiinrange(10000)〕withNumber():li〔〕foriinrange(10000):li。append(i)range不可以使用小数做步长,实现一个可迭代对象,可以实现小数步长importdecimalclassFrange:definit(self,start,endNone,step1):如果只有一个值传进来ifendNone:证明只传进来了一个值self。startstepself。endstartself。stepstep如果是两个值else:证明传进来了不止一个值self。startstartstepself。endendself。stepstepdefiter(self):returnselfdefnext(self):self。startdecimal。Decimal(str(self。start))decimal。Decimal(str(self。step))ifself。startself。end:主动报错raiseStopIterationelse:returnself。startfFrange(2,3)foriinf:print(i)序列协议classIndex():definit(self,args):self。value是一个元组self。valueargsdeflen(self):returnlen(self。value)元组取值defgetitem(self,key):returnself。value〔key〕li〔1,5,7,9〕fori,sinenumerate(li):print(i,s)迭代器协议li〔1,5,7,9〕fli。iter()print(next(f))print(next(f))print(next(f))print(next(f))classNumber:definit(self,end10,step1):self。start1self。endendself。stepstep返回可迭代对象defiter(self):returnselfdefnext(self):self。startself。stepifself。startself。end:raiseStopIterationreturnself。startforiinNumber():print(i)私有属性(不可以直接调用,需要通过方法调用):设置初始值、修改、使用相当于init()构造函数classMyName:name陈宏defset(self,name):在这里修改赋值self。namenamedefget(self):在这里返回值,若修改就是name,没修改就是上方初始值:陈宏returnself。nameaMyName()a。set(bd)print(a。get()) 文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去!一起加油!