摘要:面向?qū)ο箢愂乾F(xiàn)實(shí)世界或思維世界的實(shí)體在計(jì)算機(jī)中的反映它將數(shù)據(jù)以及這些數(shù)據(jù)上的操作封裝在一起屬性特征方法函數(shù)行為構(gòu)造函數(shù)初始化類的特征構(gòu)造函數(shù)是自動(dòng)被調(diào)用的,也可顯式調(diào)用,但不能定義值,只能返回一般不用作用初始化類的特征值,讓對(duì)象之間變
面向?qū)ο螅?/b>
#類是現(xiàn)實(shí)世界或思維世界的實(shí)體在計(jì)算機(jī)中的反映 #它將數(shù)據(jù)以及這些數(shù)據(jù)上的操作封裝在一起 # 屬性-特征 # 方法(函數(shù))-行為 # 構(gòu)造函數(shù)-__init__() 初始化類的特征 構(gòu)造函數(shù)是自動(dòng)被調(diào)用的,也可顯式調(diào)用,但不能定義return值,只能返回None(一般不用) 作用:初始化類的特征值,讓對(duì)象之間變的不同1 類命名
# 首字母大寫;單詞之間大寫連接2 構(gòu)造函數(shù)(特殊的實(shí)例方法)
# 2.1 默認(rèn)被調(diào)用;亦可被主動(dòng)調(diào)用 # 2.2 只能返回None,它不是用來返回值的 # 2.3 作用:讓模板創(chuàng)建不同的對(duì)象,初始化對(duì)象的特性3 屬性
# 類變量(用"="號(hào)賦值?。?!) :Students.sum #規(guī)范:通過方法修改類變量 # self.__class__.變量 訪問類變量 # 實(shí)例變量 # self.變量 定義實(shí)例變量 # __dict__ 內(nèi)置函數(shù)(同__all__,定義import*的范圍):對(duì)象下所有變量的字典 # dict需在實(shí)例中調(diào)用,在類中不準(zhǔn)確。4 方法
# 4.1 實(shí)例方法 # self 顯勝于隱 相當(dāng)于this,只和實(shí)例對(duì)象有關(guān),和類無關(guān) #訪問實(shí)例變量,要加self # 訪問類變量 __class__ 指定的類 Student # 不要操作與對(duì)象無關(guān)的變量,請(qǐng)用類方法 # 4.2 類方法 @classmethod裝飾器 # 在函數(shù)前加上一個(gè)@classmethod 將self改成cls # 避免邏輯錯(cuò)亂,不要用對(duì)象調(diào)用類方法 # 可以訪問類變量 cls.sum(實(shí)例方法:self.__class__.變量 ) # 調(diào)用:類.類方法() (不建議用對(duì)象調(diào)用類方法,不合邏輯) # 4.3 靜態(tài)方法 @staticmethod,不推薦用此方法 # 在函數(shù)前加上一個(gè)@staticmethod # 可以同時(shí)被 對(duì)象、類 調(diào)用 # 可以訪問類變量 Student.sum,和變量關(guān)聯(lián)性不大的方法時(shí)用5 成員的可見性
# 只允許內(nèi)部的方法操作變量,避免直接修改數(shù)據(jù)變量 # __ 前面加 雙下劃線 變量變成私有6 繼承性
# 建議一個(gè)類多帶帶成一個(gè)文件 # super 指代父類 Python3.x 和 2.x 的一個(gè)區(qū)別是:3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx # 子類調(diào)用父類 屬性、方法 時(shí),優(yōu)先使用super()案例:
class Student(): sum=0 def __init__(self,name1,age): self.name=name1 self.age=age self.__score=0 print(self.name) #在實(shí)例方法中不要操作與對(duì)象無關(guān)的變量,請(qǐng)用類方法 #self.__class__.sum+=1 #print((self.__class__.sum)) #2.2 return "只能返回None" @classmethod def plus_sum(cls): cls.sum+=1 print("我們班有:",cls.sum) @staticmethod def add(x,y): print("This is a static method") def do_homework(self): print("寫作業(yè)") def marking(self,score): self.__score=score print(self.name+"同學(xué)本次成績是"+str(self.__score)) class people #實(shí)例化 s1=Student("石敢當(dāng)",20) r1=s1.marking(98) Student.plus_sum() s1=Student("石當(dāng)2",22) Student.plus_sum() #2.1 很少調(diào)用構(gòu)造函數(shù),只是證明可用 #a=s1.__init__() # print(a) # print(type(a)) #print(s1.name) #print(s1.__dict__) #print(Student.__dict__) s1.do_homework()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43690.html
摘要:如果初學(xué)者接觸的第一門語言是,學(xué)習(xí)曲線則會(huì)平滑得多,掌握一些基本語法和內(nèi)置的數(shù)據(jù)結(jié)構(gòu),已經(jīng)可以上手寫一些小工具或者小型應(yīng)用。如果你的學(xué)習(xí)時(shí)間充足,我的建議是一定要學(xué)數(shù)據(jù)結(jié)構(gòu)和算法。 前言 Python是最容易入門的編程語言,沒有之一。如果初學(xué)者接觸的第一門語言是C或者C++,對(duì)他們來說最難的不是語法,而是容易出現(xiàn)內(nèi)存泄漏、指針等問題。有時(shí)候排查這些問題對(duì)初學(xué)者的打擊很大,尤其是沒掌握排...
摘要:反對(duì)者在某些領(lǐng)域?qū)Υ擞枰苑裾J(rèn)。下面再引用一段來自維基百科中關(guān)于的歷史。類的更嚴(yán)格的定義是由某種特定的元數(shù)據(jù)所組成的內(nèi)聚的包。類還可以有運(yùn)行時(shí)表示形式元對(duì)象,它為操作與類相關(guān)的元數(shù)據(jù)提供了運(yùn)行時(shí)支持。 在開始部分,請(qǐng)看官非常非常耐心地閱讀下面幾個(gè)枯燥的術(shù)語解釋,本來這不符合本教程的風(fēng)格,但是,請(qǐng)看官諒解,因?yàn)榱形粚硪欢ㄒ喿x枯燥的東西的。這些枯燥的屬于解釋,均來自維基百科。 1、問題...
摘要:面向?qū)ο缶幊?,?jiǎn)稱,是一種程序設(shè)計(jì)思想。面向過程與面向?qū)ο竺嫦蜻^程的程序設(shè)計(jì)把函數(shù)作為程序的基本單元。以上是在計(jì)算機(jī)世界里認(rèn)識(shí)面向?qū)ο蠛兔嫦蜻^程,接下來給大家舉個(gè)生活中的例子就拿你早上想吃雞蛋灌餅為例。 面向?qū)ο缶幊獭狾bject Oriented Programming,簡(jiǎn)稱OOP,是一種程序設(shè)計(jì)思想。OOP把對(duì)象作為程序的基本單元,一個(gè)對(duì)象包含了數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)。 面向過程 ...
摘要:這里推薦一本書源碼剖析源碼剖析豆瓣這本書把源碼中最核心的部分,給出了詳細(xì)的闡釋,不過閱讀此書需要對(duì)語言內(nèi)存模型和指針有著很好的理解。 是否非常想學(xué)好 Python,一方面被瑣事糾纏,一直沒能動(dòng)手,另一方面,擔(dān)心學(xué)習(xí)成本太高,心里默默敲著退堂鼓? 幸運(yùn)的是,Python 是一門初學(xué)者友好的編程語言,想要完全掌握它,你不必花上太多的時(shí)間和精力。 Python 的設(shè)計(jì)哲學(xué)之一就是...
閱讀 3997·2021-09-22 16:03
閱讀 5355·2021-09-22 15:40
閱讀 1201·2021-09-06 15:02
閱讀 881·2019-08-30 15:53
閱讀 2240·2019-08-29 15:35
閱讀 1117·2019-08-23 18:22
閱讀 3347·2019-08-23 16:06
閱讀 655·2019-08-23 12:27