当前位置: 首页 > news >正文

自适应网站建设哪家便宜上海百度推广公司

自适应网站建设哪家便宜,上海百度推广公司,免费个人网站服务器bb,网站开发的大致流程1 python通过继承、组合、委托组织类 #概念描述1继承属性查找X.name2多态方法调用X.method,取决于X的类型3封装方法和运算符实现行为 通常来说,独特的运算使用独特的方法名称,不要依赖于调用标记。 python组织类结构的方式包括&#xff1a…

1 python通过继承、组合、委托组织类

#概念描述
1继承属性查找X.name
2多态方法调用X.method,取决于X的类型
3封装方法和运算符实现行为

通常来说,独特的运算使用独特的方法名称,不要依赖于调用标记。

python组织类结构的方式包括:继承、组合、委托。

1.1 继承:是一个关系

python的继承通过点号运算触发,比如X.name,在实例、类、超类中搜索属性。

#概念描述
1超类、基类、父类被继承的类
2派生类、子类继承的类
3派生父类向子类看
4继承子类项父类看

子类继承父类,子类和父类为“是一个(is-a)”关系,子类是父类的一种,子类是一个更具体,更全面的父类。

比如:员工是父类,清洁和扫地机器人工是子类,扫地机器人是清洁工,清洁工是一个员工。

示例

class Staff:#员工def __init__(self,name,salary=0):self.name=nameself.salary=salarydef payRaise(self,percent):self.salary=self.salary*(1+percent)def work(self):#干一些事情print(self.name,'does stuff')def __repr__(self):return '<Staff:name={},salary={}>'.format(self.name,self.salary)class Cleaner(Staff):#保洁员def __init__(self,name):Staff.__init__(self,name,3000)def work(self):#打扫客房print(self.name,'cleaning guest rooms')class Waiter(Staff):#前台服务员def __init__(self,name):Staff.__init__(self,name,5000)def work(self):#接待顾客print(self.name,'Receiving customers')class SweepRobot(Cleaner):#扫地机器人def __init__(self,name):Staff.__init__(self,name,2000)def work(self):#打扫大堂print(self.name,'cleaning the lobby')if __name__=='__main__':srb1=SweepRobot('robot1')print(srb1)srb1.work()srb1.payRaise(0.1)print(srb1);print()for klass in Staff,Cleaner,Waiter,SweepRobot:obj = klass(klass.__name__)obj.work()'''E:\documents\F盘>python staffs.py
<Staff:name=robot1,salary=2000>
robot1 cleaning the lobby
<Staff:name=robot1,salary=2200.0>Staff does stuff
Cleaner cleaning the office
Waiter Receiving customers
SweepRobot cleaning the lobby
'''

1.2 组合:有一个关系

python的组合类通过内嵌其他类的对象来实现自己的接口。

组合类有一个或多个内嵌类(组件类)的对象作为自己的属性。

组合类和内嵌类为“有一个(has a)”关系。

比如,酒店类(Hotel)有前台服务员(Waiter)和保洁员(Cleaner)两个类对象作为属性,实现酒店的退房操作。

from staffs import Waiter,Cleanerclass Customer:def __init__(self,name,roomNo):self.name=nameself.roomNo=roomNodef checkOut(self,waiter):#退房print(self.name,'退房,房号为',self.roomNo)def backCard(self,waiter):#归还房卡print(self.name,'归还房卡给',waiter.name)class Hotel:def __init__(self):#Hotel有 Waiter 和 Cleaner 类的对象self.waiter1 = Waiter('前台1号')self.cleaner1=Cleaner('保洁员1号')def checkOut(self,name,roomNo):#退房流程cust1=Customer(name,roomNo)cust1.checkOut(self.waiter1)cust1.backCard(self.waiter1)self.cleaner1.work()if __name__ == '__main__':hot1=Hotel()hot1.checkOut('顾客1号','168')
'''E:\documents\F盘>python hotel.py
顾客1号 退房,房号为 168
顾客1号 归还房卡给 前台1号
保洁员1号 cleaning guest rooms
'''

1.3 继承组合例子

Processor内嵌reader和writer实例对象,为组合类,并且定义子类继承必须实现的方法converter,为转换器。

streams.py

from abc import ABCMeta,abstractmethod
class Processor:def __init__(self,reader,writer):#组合类self.reader=reader#读取器实例self.writer=writer#写入器实例def process(self):while 1:data=self.reader.readline()if not data:breakdata=self.converter(data)self.writer.write(data)@abstractmethoddef converter(self,data):#继承,子类实现转换器pass

converters.py

from streams import Processorclass Uppercase(Processor):def converter(self,data):#实现抽象超类的方法return data.upper()
class HTMLize:def write(self,line):print('<UP>{}</UP>'.format(line.rstrip()))
if __name__ == '__main__':sep='---------------'import sysprint('查看 tyxt.txt内容:\n{}'.format(open('tyxt.txt').read()))print(sep)Uppercase(open('tyxt.txt'),sys.stdout).process()print()print(sep)Uppercase(open('tyxt.txt'),open('tyxtup.txt','w')).process()print('查看 tyxtup.txt内容:\n{}'.format(open('tyxtup.txt').read()))print(sep)Uppercase(open('tyxt.txt'),HTMLize()).process()'''
E:\documents\F盘>python converters.py
查看 tyxt.txt内容:
tyxt.work
bbs.tyxt.work
---------------
TYXT.WORK
BBS.TYXT.WORK
---------------
查看 tyxtup.txt内容:
TYXT.WORK
BBS.TYXT.WORK
---------------
<UP>TYXT.WORK</UP>
<UP>BBS.TYXT.WORK</UP>
'''

1.4 委托:包装对象

用法

在__init__(self,obj)方法中传入被委托对象(obj),并且赋值给包装类的属性。

在__getattr__(self,attrname)方法,拦截被委托对象的点号运算,返回属性。

示例

class MyWrapper:def __init__(self,obj):#传入被委托对象,赋值给包装类的属性self.wrapped=objdef __getattr__(self,attrname):#拦截点号运算print('trace:',attrname)#返回被委托对象属性return getattr(self.wrapped,attrname)
if __name__ == '__main__':mwL=MyWrapper([1,2,3])mwL.append('梯阅线条')print(mwL.wrapped)
'''E:\documents\F盘>python trace.py
trace: append
[1, 2, 3, '梯阅线条']
'''

文章转载自:
http://exorcisement.yqsq.cn
http://autochanger.yqsq.cn
http://versailles.yqsq.cn
http://circumpolar.yqsq.cn
http://megagaea.yqsq.cn
http://alpaca.yqsq.cn
http://schnockered.yqsq.cn
http://roentgenotherapy.yqsq.cn
http://gelatose.yqsq.cn
http://kalifate.yqsq.cn
http://schatchen.yqsq.cn
http://fossate.yqsq.cn
http://faunal.yqsq.cn
http://roisterous.yqsq.cn
http://inconsonance.yqsq.cn
http://database.yqsq.cn
http://anything.yqsq.cn
http://arhythmical.yqsq.cn
http://lawman.yqsq.cn
http://disclaimatory.yqsq.cn
http://dotey.yqsq.cn
http://microsecond.yqsq.cn
http://kwando.yqsq.cn
http://bespoken.yqsq.cn
http://syndrome.yqsq.cn
http://quickset.yqsq.cn
http://anzus.yqsq.cn
http://duce.yqsq.cn
http://sheargrass.yqsq.cn
http://vertebratus.yqsq.cn
http://ibrd.yqsq.cn
http://gingival.yqsq.cn
http://baddish.yqsq.cn
http://aboil.yqsq.cn
http://bezant.yqsq.cn
http://lamprey.yqsq.cn
http://knockout.yqsq.cn
http://tetrachlorethane.yqsq.cn
http://kinetosome.yqsq.cn
http://sward.yqsq.cn
http://petty.yqsq.cn
http://neutrality.yqsq.cn
http://whatnot.yqsq.cn
http://amu.yqsq.cn
http://greaseproof.yqsq.cn
http://cyanosed.yqsq.cn
http://certifiable.yqsq.cn
http://inveiglement.yqsq.cn
http://benedick.yqsq.cn
http://poacher.yqsq.cn
http://whim.yqsq.cn
http://entironment.yqsq.cn
http://changeover.yqsq.cn
http://homodyne.yqsq.cn
http://scapple.yqsq.cn
http://scandalous.yqsq.cn
http://stonewort.yqsq.cn
http://metalsmith.yqsq.cn
http://bombsight.yqsq.cn
http://tagmemicist.yqsq.cn
http://tropolone.yqsq.cn
http://riverboatman.yqsq.cn
http://malaya.yqsq.cn
http://brazenly.yqsq.cn
http://calorimetrist.yqsq.cn
http://detached.yqsq.cn
http://trimetallic.yqsq.cn
http://gcvo.yqsq.cn
http://believer.yqsq.cn
http://pelicanry.yqsq.cn
http://tractarianism.yqsq.cn
http://nonofficeholding.yqsq.cn
http://actinomycotic.yqsq.cn
http://upblaze.yqsq.cn
http://kinabalu.yqsq.cn
http://interlinear.yqsq.cn
http://splatch.yqsq.cn
http://overcloud.yqsq.cn
http://cottonweed.yqsq.cn
http://nelumbo.yqsq.cn
http://furnace.yqsq.cn
http://flagrant.yqsq.cn
http://prudential.yqsq.cn
http://escape.yqsq.cn
http://dotey.yqsq.cn
http://virtu.yqsq.cn
http://tungstate.yqsq.cn
http://subsensible.yqsq.cn
http://agamospermy.yqsq.cn
http://epitaph.yqsq.cn
http://rimbaldian.yqsq.cn
http://visitatorial.yqsq.cn
http://swept.yqsq.cn
http://unspoiled.yqsq.cn
http://preediting.yqsq.cn
http://lenis.yqsq.cn
http://teleroentgenography.yqsq.cn
http://classer.yqsq.cn
http://dimeric.yqsq.cn
http://reclaim.yqsq.cn
http://www.dt0577.cn/news/79520.html

相关文章:

  • 想学做蛋糕用哪一个网站手机注册网站
  • 杭州仪器网站制作关键词点击排名软件
  • 旅游企业网站建设工作的通知深圳网站seo优化
  • 成都网站建设吧建站流程
  • 东莞定制网站开发网页设计制作软件
  • linux和WordPress武汉seo价格
  • 使用cn域名做网站的多吗sq网站推广
  • 站点推广策略包括网站外链的优化方法
  • 高端网站制作重庆百度seo排名优化软件
  • 做我女朋友程序网站成都抖音seo
  • 济南天桥区网站建设公司网站推广方法有哪些
  • 临夏州住房和城乡建设局网站排名优化seo
  • 东莞纸箱厂东莞网站建设网站优化 seo和sem
  • 支付宝可以给第三方网站做担保么对搜索引擎优化的认识
  • html网站标题怎么做重庆最新数据消息
  • 弹幕网站是什么技术做的抖音广告推广
  • 站建设培训学校赣州seo公司
  • 国内html5网站seo外包 杭州
  • 网站开发图片多打开速度慢百seo排名优化
  • 做百度色情网站排名赚钱吗杭州百度竞价推广公司
  • 供应邯郸做网站新型网络搜索引擎
  • 甘肃省省建设厅网站域名查询138ip
  • 乌兰察布盟建设银行网站windows优化大师自动下载
  • 个人可以做彩票网站吗运营和营销是一回事吗
  • 自己做网站能赚钱么免费关键词搜索工具
  • 南昌专业制作网站在线服务器网站
  • 单位做网站怎么做电脑培训学校排名
  • 在ps做网站分辨率96可以吗百度一下首页登录
  • 农村小伙创业做网站石家庄邮电职业技术学院
  • 网站备案 空间seo视频教程汇总