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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解python對(duì)象之間的交互

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

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

class 類名: def __init__(self,參數(shù)1,參數(shù)2): self.對(duì)象的屬性1 = 參數(shù)1 self.對(duì)象的屬性2 = 參數(shù)2 def 方法名(self):pass def 方法名2(self):pass對(duì)象名 = 類名(1,2) #對(duì)象就是實(shí)例,代表一個(gè)具體的東西 #類名() : 類名+括號(hào)就是實(shí)例化一個(gè)類,相當(dāng)于調(diào)用了__init__方法 #括號(hào)里傳參數(shù),參數(shù)不需要傳self,其他與init中的形參一一對(duì)應(yīng) #結(jié)果返回一個(gè)對(duì)象對(duì)象名.對(duì)象的屬性1 #查看對(duì)象的屬性,直接用 對(duì)象名.屬性名 即可對(duì)象名.方法名() #調(diào)用類中的方法,直接用 對(duì)象名.方法名() 即可

對(duì)象之間的交互

現(xiàn)在我們已經(jīng)有一個(gè)人類了,通過(guò)給人類一些具體的屬性我們就可以拿到一個(gè)實(shí)實(shí)在在的人?,F(xiàn)在我們要再創(chuàng)建一個(gè)狗類,狗就不能打人了,只能咬人,所以我們給狗一個(gè)bite方法。有了狗類,我們還要實(shí)例化一只實(shí)實(shí)在在的狗出來(lái)。然后人和狗就可以打架了?,F(xiàn)在我們就來(lái)讓他們打一架吧!

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

面向?qū)ο蟮慕M合用法

組合指的是,在一個(gè)類中以另外一個(gè)類的對(duì)象作為數(shù)據(jù)屬性,稱為類的組合

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

圓環(huán)是由兩個(gè)圓組成的,圓環(huán)的面積是外面圓的面積減去內(nèi)部圓的面積。圓環(huán)的周長(zhǎng)是內(nèi)部圓的周長(zhǎng)加上外部圓的周長(zhǎng)。這個(gè)時(shí)候,我們就首先實(shí)現(xiàn)一個(gè)圓形類,計(jì)算一個(gè)圓的周長(zhǎng)和面積。然后在'環(huán)形類'中組合圓形的實(shí)例作為自己的屬性來(lái)用

from math import piclass Circle: ’’’ 定義了一個(gè)圓形類; 提供計(jì)算面積(area)和周長(zhǎng)(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) #實(shí)例化一個(gè)圓area1 = circle.area() #計(jì)算圓面積per1 = circle.perimeter() #計(jì)算圓周長(zhǎng)print(area1,per1) #打印圓面積和周長(zhǎng)class Ring: ’’’ 定義了一個(gè)圓環(huán)類 提供圓環(huán)的面積和周長(zhǎng)的方法 ’’’ 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) #實(shí)例化一個(gè)環(huán)形print(ring.perimeter()) #計(jì)算環(huán)形的周長(zhǎng)print(ring.area()) #計(jì)算環(huán)形的面積

用組合的方式建立了類與組合的類之間的關(guān)系,它是一種‘有’的關(guān)系,比如教授有生日,教授教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)’’’ 運(yùn)行結(jié)果: 1995 1 27 python 28000 4 months ’’’

以上就是詳解python對(duì)象之間的交互的詳細(xì)內(nèi)容,更多關(guān)于python 對(duì)象交互的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 高压负荷开关-苏州雷尔沃电器有限公司 | 上海律师事务所_上海刑事律师免费咨询平台-煊宏律师事务所 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 地源热泵一体机,地源热泵厂家-淄博汇能环保设备有限公司 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 淘趣英语网 - 在线英语学习,零基础英语学习网站| 英超直播_英超免费在线高清直播_英超视频在线观看无插件-24直播网 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 房间温控器|LonWorks|海思| 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 设计圈 - 让设计更有价值!| 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 | 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 手术室净化厂家_成都实验室装修公司_无尘车间施工单位_洁净室工程建设团队-四川华锐16年行业经验 | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 |