關於Python類的一些基礎概念的簡單學習

2021-10-14 04:57:30 字數 1867 閱讀 4304

類和例項:
類是建立新物件的模板。利用類建立的新物件叫類的例項。個人感覺,類是多個函式的集合,例項則類似於物件。

例項和類之間的特殊關係:instance-of
當生成例項時,建立它的類記錄在例項名為_class_的特殊屬性名中,通過這種方式,例項能夠永遠「記住」它所屬的類(即建立它的模板)。

python物件作用域規則:先例項,然後類
變數的作用域與引用變數的命名空間相關聯。legb規則是指在查詢變數時按以下次序進行搜尋:首先是區域性命名空間(l),其次封閉(函式)命名空間(e),然後全域性命名空間(g),最後是內建命名空間(b)。如果在搜尋的過程中沒有發現該變數,則變數還未定義。

類似的規則也適用於物件,先在例項中尋找物件,再到類中通過instance-of關係尋找物件。也因為這種尋找順序,所以可以通過對例項的定義覆蓋掉在類中的定義。

class

myclass

(object):

pass

inst1=myclass(

)inst2=myclass(

)inst3=myclass(

)myclass.classattribute=

27inst1=

72print inst1.classattribute

>>

>

72print inst2.classattribute

>>

>

27print inst3.classattribute

>>

>

27myclass.classattribute=

999print inst1.classattribute #這裡inst1的值依舊沒變

>>

>

72print inst2.classattribute

>>

>

999print inst3.classattribute

>>

>

999

當例項設定了本地屬性後(賦值),它不受類變化的影響,也不會影響其它例項的屬性值;沒有本地屬性的例項通過使用例項鏈結來獲取值。

特殊引數self
通常方法的第乙個引數叫做self,self是引用呼叫方法的物件,通過這種方式,可以在方法中對呼叫它的物件進行操作。

特殊方法__str__
確保__str__特殊方法返回的是乙個值,且這個值是字串,否則可能會得到奇怪的結果。

公有和私有
· 公共屬性提供給每個人使用

· 私有屬性只提供給類的設計者

python不強制區分私有和公有,所有的方法和例項變數都是公共的,類設計者和程式設計師都能訪問,類設計者通過在屬性前加兩條下劃線來告訴使用者:這些屬性最好不要隨意修改!

在類的內部可以可以直接通過點引用引用這些屬性,如果要在類外使用該屬性,python會將屬性名稱進行變形,改變了屬性的名字(不過可以通過dir()來查詢更改後的屬性名,這種方式並不能禁止程式設計師訪問屬性值,只是提供了乙個模糊層)

繼承
例項生產過其中乙個屬性是__class__屬性,用來代表建立該例項的類。

「is-a」關係
「is-a」關係就像「instance-of」關係一樣,是單向的,例項記得它的類是誰,但類不會跟蹤例項,類成員記得誰是它的父類,但父類不會跟蹤它的子類;每個類的__bases__屬性中都特別指出它的父類,從整體來看,所有類和父類之間的關係形成了類層次結構。類層次結構中的「頂部物件」是object

Oracle Inventory裡的一些概念

事務處理 transaction 是指物料移入庫存 在庫存內移動以及移出庫存.物料搬運單 move order 是在乙個組織內對物料進行移動的請求.保留 reservation 是 與需求 之間的關聯。保留將在 與需求 之間建立乙個永久的資料關聯,代表指定需求 的乙個可靠的物料分配。現有量 on h...

關於一些常用類

包裝類1 string類 string物件嗲表一組不可改變的unicode字串行 string物件變數實際是乙個倡廉物件 常用方法 length 獲取長度 split 分割字串 charat 獲取指定位置的字元 1 replace char oldchar,char newchar 將當前字串物件中...

Python使用Flask時遇到的一些概念

本文參考miguel grinberg所著 flask web開發 處理url和函式之間關係的程式稱為路由,如 defindex return 當訪問網頁 目錄時,伺服器會執行index 這個函式的返回值稱為響應 上述的函式即是檢視函式 view function 模板是乙個包含響應文字的檔案,其中...