电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解python對象之間的交互

瀏覽:9日期:2022-07-09 14:05:18

先看看一般的類定義如下:

class 類名: def __init__(self,參數1,參數2): self.對象的屬性1 = 參數1 self.對象的屬性2 = 參數2 def 方法名(self):pass def 方法名2(self):pass對象名 = 類名(1,2) #對象就是實例,代表一個具體的東西 #類名() : 類名+括號就是實例化一個類,相當于調用了__init__方法 #括號里傳參數,參數不需要傳self,其他與init中的形參一一對應 #結果返回一個對象對象名.對象的屬性1 #查看對象的屬性,直接用 對象名.屬性名 即可對象名.方法名() #調用類中的方法,直接用 對象名.方法名() 即可

對象之間的交互

現在我們已經有一個人類了,通過給人類一些具體的屬性我們就可以拿到一個實實在在的人?,F在我們要再創建一個狗類,狗就不能打人了,只能咬人,所以我們給狗一個bite方法。有了狗類,我們還要實例化一只實實在在的狗出來。然后人和狗就可以打架了?,F在我們就來讓他們打一架吧!

class Person: # 定義一個人類 role = ’person’ # 人的角色屬性都是人 def __init__(self, name, aggressivity, life_value): self.name = name # 每一個角色都有自己的昵稱; self.aggressivity = aggressivity # 每一個角色都有自己的攻擊力; self.life_value = life_value # 每一個角色都有自己的生命值; def attack(self,dog): # 人可以攻擊狗,這里的狗也是一個對象。 # 人攻擊狗,那么狗的生命值就會根據人的攻擊力而下降 dog.life_value -= self.aggressivityclass Dog: # 定義一個狗類 role = ’dog’ # 狗的角色屬性都是狗 def __init__(self, name, breed, aggressivity, life_value): self.name = name # 每一只狗都有自己的昵稱; self.breed = breed # 每一只狗都有自己的品種; self.aggressivity = aggressivity # 每一只狗都有自己的攻擊力; self.life_value = life_value # 每一只狗都有自己的生命值; def bite(self,people): # 狗可以咬人,這里的狗也是一個對象。 # 狗咬人,那么人的生命值就會根據狗的攻擊力而下降 people.life_value -= self.aggressivityegg = Person(’egon’,10,1000) #創造了一個實實在在的人eggprint(egg.name)# 在obj.name會先從obj自己的名稱空間里找name,找不到則去類中找,類也找不到就找父類...最后都找不到就拋出異常ha2 = Dog(’二愣子’,’哈士奇’,10,1000) #創造了一只實實在在的狗ha2print(ha2.life_value) #看看ha2的生命值egg.attack(ha2)#egg打了ha2一下print(ha2.life_value) #ha2掉了10點血

面向對象的組合用法

組合指的是,在一個類中以另外一個類的對象作為數據屬性,稱為類的組合

class Weapon: def prick(self, obj): # 這是該裝備的主動技能,扎死對方 obj.life_value -= 500 # 假設攻擊力是500class Person: # 定義一個人類 role = ’person’ # 人的角色屬性都是人 def __init__(self, name): self.name = name # 每一個角色都有自己的昵稱; self.weapon = Weapon() # 給角色綁定一個武器; egg = Person(’egon’)egg.weapon.prick() #egg組合了一個武器的對象,可以直接egg.weapon來使用組合類中的所有方法

圓環是由兩個圓組成的,圓環的面積是外面圓的面積減去內部圓的面積。圓環的周長是內部圓的周長加上外部圓的周長。這個時候,我們就首先實現一個圓形類,計算一個圓的周長和面積。然后在'環形類'中組合圓形的實例作為自己的屬性來用

from math import piclass Circle: ’’’ 定義了一個圓形類; 提供計算面積(area)和周長(perimeter)的方法 ’’’ def __init__(self,radius): self.radius = radius def area(self): return pi * self.radius * self.radius def perimeter(self): return 2 * pi *self.radiuscircle = Circle(10) #實例化一個圓area1 = circle.area() #計算圓面積per1 = circle.perimeter() #計算圓周長print(area1,per1) #打印圓面積和周長class Ring: ’’’ 定義了一個圓環類 提供圓環的面積和周長的方法 ’’’ def __init__(self,radius_outside,radius_inside): self.outsid_circle = Circle(radius_outside) self.inside_circle = Circle(radius_inside) def area(self): return self.outsid_circle.area() - self.inside_circle.area() def perimeter(self): return self.outsid_circle.perimeter() + self.inside_circle.perimeter()ring = Ring(10,5) #實例化一個環形print(ring.perimeter()) #計算環形的周長print(ring.area()) #計算環形的面積

用組合的方式建立了類與組合的類之間的關系,它是一種‘有’的關系,比如教授有生日,教授教python課程

class BirthDate: def __init__(self,year,month,day): self.year=year self.month=month self.day=dayclass Couse: def __init__(self,name,price,period): self.name=name self.price=price self.period=periodclass Teacher: def __init__(self,name,gender,birth,course): self.name=name self.gender=gender self.birth=birth self.course=course def teach(self): print(’teaching’)p1=Teacher(’egon’,’male’, BirthDate(’1995’,’1’,’27’), Couse(’python’,’28000’,’4 months’) ) print(p1.birth.year,p1.birth.month,p1.birth.day) print(p1.course.name,p1.course.price,p1.course.period)’’’ 運行結果: 1995 1 27 python 28000 4 months ’’’

以上就是詳解python對象之間的交互的詳細內容,更多關于python 對象交互的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 土壤养分检测仪_肥料养分检测仪_土壤水分检测仪-山东莱恩德仪器 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 石家庄小程序开发_小程序开发公司_APP开发_网站制作-石家庄乘航网络科技有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | 重庆小面培训_重庆小面技术培训学习班哪家好【终身免费复学】 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 垃圾清运公司_环卫保洁公司_市政道路保洁公司-华富环境 | 工业制氮机_psa制氮机厂家-宏骁智能装备科技江苏有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 浙江自考_浙江自学考试网| 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 湖北省煤炭供应链综合服务平台| 光栅尺厂家_数显表维修-苏州泽升精密机械 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 济南铝方通-济南铝方通价格-济南方通厂家-山东鲁方通建材有限公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 铝合金电阻-无源谐波滤波器-上海稳达电讯设备厂 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 |