-
Python的類(lèi)中,還可以自定義一些雙下劃線開(kāi)頭和結(jié)尾的內(nèi)置方法, 以使自定義的類(lèi)具有加,減,乘,除,比較,打印等功能: 1.比較運(yùn)算符 __cmp__(self, other), 比較 __eq__(self, other), 是否等于 __lt__(self, other), 是否小于 __gt__(self, other), 是否大于 2.數(shù)字運(yùn)算符 __add__(self, other) __sub__(self, other) __mul__(self, other) __div__(self, other) 3.邏輯運(yùn)算符 __or__(self, other) __and__(self, other)查看全部
-
tsPython中對(duì)象的實(shí)例化過(guò)程 1. 創(chuàng)建類(lèi)的對(duì)象: def __new__(cls, *args, **kwargs) 在類(lèi)的內(nèi)部調(diào)用__new__方法時(shí), 其參數(shù)和init傳入進(jìn)來(lái)的參數(shù)一直(self除外) -------------------- class Person(object): def __new__(cls, *args, **kwargs): super(Person, cls).__new__(*args, **kwargs) -------------------- 2. 初始化對(duì)象:def __init__(self, ...) 3. 對(duì)象的實(shí)例化過(guò)程中,會(huì)先調(diào)用__new__方法創(chuàng)建對(duì)象, 再調(diào)用__init__方法初始化對(duì)象 4. 另外,還可以自定義__del__方法, 定義對(duì)象在銷(xiāo)毀時(shí)的動(dòng)作查看全部
-
Python中類(lèi)的繼承 1. 子類(lèi)會(huì)集成父類(lèi)的屬性和方法, 子類(lèi)也可以自己定義, 覆蓋父類(lèi)的屬性和方法 2. 子類(lèi)通過(guò)super方法來(lái)調(diào)用父類(lèi)的方法: super(子類(lèi)名, self).父類(lèi)方法名() 3.子類(lèi)的類(lèi)型判斷: isinstance, issubclass isinstance(對(duì)象名, 類(lèi)名) 或 isinstance(對(duì)象名, (類(lèi)名1, 類(lèi)名2, 類(lèi)名3, ...)) 其中,后者表示, 對(duì)象是后面(類(lèi)名1, 類(lèi)名2, 類(lèi)名3, ...)中任意一個(gè)類(lèi)的對(duì)象,就返回Ture, 否則返回false issubclass(類(lèi)名, 類(lèi)名) 或 issubclass(類(lèi)名, (類(lèi)名1, 類(lèi)名2, 類(lèi)名3, ...))查看全部
-
Python中的函數(shù)和方法是不同的兩個(gè)概念 函數(shù): 定義在類(lèi)的外部, 直接通過(guò)函數(shù)名來(lái)調(diào)用 方法: 定義在類(lèi)中,通過(guò)類(lèi)或?qū)ο髞?lái)進(jìn)行調(diào)用查看全部
-
Python的類(lèi)中定義的雙下劃線開(kāi)頭的屬性"__score", 在外界訪問(wèn)不了, 是因?yàn)? python將這個(gè)屬性的名稱(chēng)改成了"_類(lèi)名__score", 所以在外面就不能以__score來(lái)訪問(wèn)了 Python中是沒(méi)有訪問(wèn)限制機(jī)制的, 只有通過(guò)這種辦法來(lái)簡(jiǎn)介的使__score不能被外界訪問(wèn). 而使用"_類(lèi)名__score"其實(shí)還是可以訪問(wèn)到的查看全部
-
類(lèi)的多態(tài) 要素:繼承、方法重寫(xiě)查看全部
-
類(lèi)的繼承 定義類(lèi)的繼承:class DerivedClassName(BaseClassName): <statemnet-1> ... <statement-n> 繼承的子類(lèi): 1.會(huì)繼承父類(lèi)的屬性和方法 2.也可以自己定義,覆蓋父類(lèi)的屬性和方法 用super()調(diào)用父類(lèi)的方法: class A(object): def method(self,arg): pass class B(A): def method(self,arg): super(B,self).method(arg) 用類(lèi)名調(diào)用父類(lèi)的方法: class A(object): def method(self,arg): pass class B(A): def method(self,arg): A.method(arg) 子類(lèi)的類(lèi)型判斷: isinstance:判斷父類(lèi) issubclass:判斷是否是子類(lèi) 多繼承: class DerivedClassName(Base1,Base2,Base3): <statement-1> ... <statement-n>查看全部
-
定義類(lèi)的方法:(python中一切皆對(duì)象) 函數(shù)(直接用函數(shù)名調(diào)用)方法(類(lèi)的一部分)區(qū)別在于是否依附于一個(gè)類(lèi) 類(lèi)的方法也是類(lèi)的屬性,類(lèi)型是method對(duì)象 訪問(wèn)控制與類(lèi)的變量一致 關(guān)于方法的裝飾器 @classmethod #調(diào)用的時(shí)候用類(lèi)名,而不是某個(gè)對(duì)象 @property #像訪問(wèn)屬性一樣調(diào)用方法查看全部
-
定義類(lèi)的屬性: 1:直接在類(lèi)里定義 class Programer(object): sex = 'male' 2:在構(gòu)造函數(shù)里定義 class Programer(object): def __init__(self,name,age): self.name = name #可以公開(kāi)訪問(wèn) self._age = age #私有屬性 self.__weight = weight#部分私有屬性,類(lèi)可訪問(wèn),實(shí)例無(wú)法直接訪問(wèn) #可通過(guò)實(shí)例名._類(lèi)名__weight訪問(wèn) .__dict__#查看對(duì)象屬性的情況 無(wú)訪問(wèn)控制 無(wú)私有屬性查看全部
-
定義類(lèi): class ClassName: statement1 ... statementN def __init__(self,[...):#構(gòu)造函數(shù)#與之相反的是析構(gòu)函數(shù),銷(xiāo)毀函數(shù)時(shí)用的。被python的垃圾回收機(jī)制回收的時(shí)候調(diào)用,與其內(nèi)建函數(shù)del無(wú)關(guān) def __del__(self,[...): 定義類(lèi)時(shí)候最好繼承Object類(lèi)。2.2版本有新老兩類(lèi),一類(lèi)沒(méi)有繼承,3之后不存在這問(wèn)題,都是新式類(lèi)。 新式類(lèi)屬性多,功能更強(qiáng)大 內(nèi)建函數(shù): dir()#返回對(duì)象屬性 type()#獲取對(duì)象類(lèi)型查看全部
-
面向?qū)ο蟾拍睿好嫦驅(qū)ο笫且环N抽象 兩個(gè)基本概念:類(lèi)(定義一件事物的抽象特點(diǎn))、對(duì)象(類(lèi)的一個(gè)實(shí)例) 兩個(gè)基本要素:屬性(變量)、方法(函數(shù))-->封裝性(只知道功能,不知道實(shí)現(xiàn)過(guò)程) 繼承(子類(lèi)既是子類(lèi),又是父類(lèi)) 多重繼承(繼承不同維度) 多態(tài)(用一個(gè)類(lèi)繼承幾個(gè)不同的類(lèi))調(diào)用不同類(lèi)有不同的結(jié)果查看全部
-
面向?qū)ο螅∣OP):基本單元:對(duì)象 封裝數(shù)據(jù)與功能 具有良好復(fù)用性、靈活性、擴(kuò)展性查看全部
-
調(diào)用方法的三種途徑 1.實(shí)例化,通過(guò)實(shí)例調(diào)用 2.打@classmethod 標(biāo)簽,然后用類(lèi)名直接調(diào)用 3.打@property 標(biāo)簽,然后用實(shí)例調(diào)用,但是不需要加括號(hào),適用于沒(méi)有參數(shù)的方法查看全部
-
基本概念: 類(lèi)查看全部
-
method:方法查看全部
舉報(bào)
0/150
提交
取消