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

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

如何理解python面向對象編程

瀏覽:48日期:2022-07-23 15:20:23

類是面向對象程序設計的一部分。面向對象程序設計或者簡稱為 OOP 致力于創建可重用代碼塊稱之為類。當你想在你的程序中使用類時,你會從類中創建一個對象,這也是面向對象一詞的由來。Python 并不總是面向對象的,但是你會在你的項目中用到對象。為了理解類,你需要理解面向對象的一些基礎術語。

常用術語

class:類。類是代碼塊的主體,其中定義了建立的模型的屬性和行為。這個模型可以來自于真實世界,也可以是虛擬游戲等。

attribute:屬性。是一系列信息的集合。在類中,一個屬性通常是一個變量。

behavior:行為。行為是定義在類中,組成方法的部分。也即是定義在類中函數的一部分。

method:方法。類中的函數,由 behavior 組成。

object:對象。對象是類的實例。一個對象中包含所有類中屬性的值。你可以為一個類創建任意數量的對象。

近距離觀察 Rocket 類

我們已經了解到一些類的基本術語,讓我們回頭再分析一下上節提到的 Rocket 類。

__init__() 方法

定義一個初始代碼塊,如下所示:

class Rocket(): # Rocket simulates a rocket ship for a game, # or a physics simulation. def __init__(self): # Each rocket has an (x,y) position. self.x = 0 self.y = 0

第一行展示了類是如何創建的。關鍵字 class 告訴 Python 準備定義一個類。類名的命名規則和變量的相同,但是 Python 中有一個約定好的規則,類名必須是駝峰式的。也即每個單詞的開頭必須是大寫的,不允許下劃線的出現。類名后緊跟一對圓括號,目前為止圓括號里都是空的,接下來的學習中,其中可能會包含一個類。這個類是新類基于的類。

前后都有兩個下劃線的函數是內置在 Python 中的有特殊用途的函數。__init__() 函數就是一個特殊的函數。當創建一個類的對象時,它會自動執行。我們可以稱之為初始化函數,在對象使用之前初始化一些必要的屬性。在這個例子中,__init__() 函數初始化了 x 和 y 屬性。

關鍵字 self 可能會有些難以理解。單詞 'self' 指向當前的對象。當你創建一個類時,它可以訪問到類中的任意指定屬性。基本上,類中所有的函數都需要 self 對象作為第一個參數,因此它們就可以訪問類中的屬性。

現在,讓我們看看類中的方法吧!

一個簡單的方法

下述代碼在 Rocket 類中定義了一個方法。

class Rocket(): # Rocket simulates a rocket ship for a game, # or a physics simulation. def __init__(self): # Each rocket has an (x,y) position. self.x = 0 self.y = 0 def move_up(self): # Increment the y-position of the rocket. self.y += 1

方法就是類中的函數。因此你可以在方法中做任何函數能做的事。

默認情況下,每個函數都需要接受一個參數:self 。它是對調用這個方法的對象的引用。self 參數能讓你訪問到調用對象的屬性。在這個例子中,self 用來訪問 Rocket 對象的 y 屬性。這個方法被調用一次,對象的 y 屬性就增加1。為了更近一步了解方法的運行過程,仔細閱讀下述代碼,并觀察它們的輸出。

class Rocket(): # Rocket simulates a rocket ship for a game, # or a physics simulation. def __init__(self): # Each rocket has an (x,y) position. self.x = 0 self.y = 0 def move_up(self): # Increment the y-position of the rocket. self.y += 1# Create a Rocket object, and have it start to move up.my_rocket = Rocket()print('Rocket altitude:', my_rocket.y)my_rocket.move_up()print('Rocket altitude:', my_rocket.y)

創建多個對象

面向對象編程一個重要目標是創建可重用代碼。一旦你寫好了類,就能創建任意數量的對象。通常,類被放進一個單獨的文件中,在需要的時候導入程序中。因此你可以創建一個類庫,在不同的程序中重復使用這些類。

在一個類上創建多個對象,示例如下:

class Rocket(): # Rocket simulates a rocket ship for a game,# Rocket # or a physics simulation. def __init__(self): # Each rocket has an (x,y) position. self.x = 0 self.y = 0 def move_up(self): # Increment the y-position of the rocket. self.y += 1 # Create a fleet of 5 rockets, and store them in a list.my_rockets = []for x in range(0,5): new_rocket = Rocket() my_rockets.append(new_rocket)# Show that each rocket is a separate object.for rocket in my_rockets: print(rocket)

內容擴展:

初識類和對象

python中一切皆為對象,類型的本質就是類,所以,不管你信不信,你已經使用了很長時間的類了

>>> dict #類型dict就是類dict<class ’dict’>>>> d=dict(name=’eva’) #實例化>>> d.pop(’name’) #向d發一條消息,執行d的方法pop’eva’

從上面的例子來看,字典就是一類數據結構,我一說字典你就知道是那個用{}表示,里面由k-v鍵值對的東西,它還具有一些增刪改查的方法。但是我一說字典你能知道字典里具體存了哪些內容么?不能,所以我們說對于一個類來說,它具有相同的特征屬性和方法。

而具體的{’name’:’eva’}這個字典,它是一個字典,可以使用字典的所有方法,并且里面有了具體的值,它就是字典的一個對象。對象就是已經實實在在存在的某一個具體的個體。

再舉一個其他的例子,通俗一點,比如你現在有一個動物園,你想描述這個動物園,那么動物園里的每一種動物就是一個類,老虎、天鵝、鱷魚、熊。他們都有相同的屬性,比如身高體重出生時間和品種,還有各種動作,比如鱷魚會游泳,天鵝會飛,老虎會跑,熊會吃。

但是這些老虎熊啥的都不是具體的某一只,而是一類動物。雖然他們都有身高體重,但是你卻沒有辦法確定這個值是多少。如果這個時候給你一只具體的老虎,而你還沒死,那你就能給他量量身高稱稱體重,這些數值是不是就變成具體的了?那么具體的這一只老虎就是一個具體的實例,也是一個對象。不止這一只,其實每一只具體的老虎都有自己的身高體重,那么每一只老虎都是老虎類的一個對象。

到此這篇關于如何理解python面向對象編程的文章就介紹到這了,更多相關python面向對象編程詳解內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 实验室隔膜泵-无油防腐蚀隔膜泵-耐腐蚀隔膜真空泵-杭州景程仪器 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 玻璃钢罐_玻璃钢储罐_盐酸罐厂家-河北华盛节能设备有限公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 航拍_专业的无人机航拍摄影门户社区网站_航拍网 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 博医通医疗器械互联网供应链服务平台_博医通 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 打造全球沸石生态圈 - 国投盛世 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 许昌奥仕达自动化设备有限公司| 汽车水泵_汽车水泵厂家-瑞安市骏迪汽车配件有限公司 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 |