python類概念是什麼 python中類的概念

2021-10-11 11:45:23 字數 2497 閱讀 6398

在python中,所有資料型別都可以視為物件,也可以自定義物件。自定義的物件即物件導向中的類(class)的概念。

1 classstudent(object):2

3 def __init__(self, name, score):4 self.name =name5 self.score =score6

7 defprint_score(self):8 print(『%s: %s『 % (self.name, self.score))

注意:__init__方法的第乙個引數永遠是self,表示建立的例項本身。

因此在__init__方法內部,就可以把各種屬性繫結到self,因為self就指向建立的例項本身。

如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線__。

在python中,例項的變數名如果以__開頭,就變成了乙個私有變數(private),只有內部可以訪問,外部不能訪問。

所以,我們把student類改一改:

1 class student(object):2

3 def __init__(self, name, score):4 self.__name =name5 self.__score =score6

7 def print_score(self):8 print(『%s: %s『 % (self.__name, self.__score))

改完後,對於外部**來說,沒什麼變動,但是已經無法從外部訪問例項變數.__name和例項變數.__score了:

1 >>> bart = student(『bart simpson『, 98)2 >>>bart.__name3 traceback (most recent call last):4 file "", line 1, in

5 attributeerror: 『student『 object has no attribute 『__name『

由於python是動態語言,根據類建立的例項可以任意繫結屬性。給例項繫結屬性的方法是通過例項變數,或者通過self變數:

1 class student(object):2 def __init__(self, name):3 self.name =name4

5 s = student(『bob『)6 s.score = 90

1 //@property使用方法

2 class student(object):3

4 def get_score(self):5 returnself._score6

7 def set_score(self, value):8 if not isinstance(value, int):9 raise valueerror(『score must be an integer!『)10 if value < 0 or value > 100:11 raise valueerror(『score must between 0 ~ 100!『)12 self._score = value

現在,對任意的student例項進行操作,就不能隨心所欲地設定score了:

1 >>> s =student()2 >>> s.set_score(60) #ok!

3 >>>s.get_score()4 60

5 >>> s.set_score(9999)6 traceback (most recent call last):7 ...8 valueerror: score must between 0 ~ 100!

使用後的變化:

1 classstudent(object):2 @property3 defscore(self):4 returnself._score5

6 @score.setter7 defscore(self, value):8 if notisinstance(value, int):9 raise valueerror(『score must be an integer!『)10 if value < 0 or value > 100:11 raise valueerror(『score must between 0 ~ 100!『)12 self._score = value

@property的實現比較複雜,我們先考察如何使用。

把乙個getter方法變成屬性,只需要加上@property就可以了。此時@property本身又建立了另乙個裝飾器@score.setter,負責把乙個setter方法變成屬性賦值。

於是,我們就擁有乙個可控的屬性操作:

1 >>> s =student()2 >>> s.score = 60 #ok,實際轉化為s.set_score(60)

3 >>> s.score #ok,實際轉化為s.get_score()

4 60

5 >>> s.score = 9999

6 traceback (most recent call last):7 ...8 valueerror: score must between 0 ~ 100!

注意到這個神奇的@property,我們在對例項屬性操作的時候,就知道該屬性很可能不是直接暴露的,而是通過getter和setter方法來實現的。

python 物件是什麼概念

在python裡,物件就是變數,物件其實是乙個指標,指向乙個資料結構,資料結構裡有屬性,有方法。def now print 2015 3 25 f now print f.name print f.c 變數後面跟乙個小數點,小數點後面就是它的屬性或方法,帶括號的是方法,不帶的就是屬性。python中...

python是什麼類 Python中什麼是類與物件

python中什麼是類與物件 閱讀 84 類的概念與定義 在生活中,我們走在路邊,看到一輛車,大腦中首先想到的是 這是一輛車,然後才是這是一輛什麼牌子的車 在這裡,我們就用到了程式設計中的類的概念。同樣的,看到一條小狗,也會先想到這是一條狗,然後會想到這是一條什麼品種的狗。在程式設計中,把同一類的事...

概念架構是什麼

概念架構是什麼 概念架構是直指系統目標的設計思想 重 擇,因而非常重要。方案建議書 技術 和市場彩頁中,都有它的身影,以說明產品 專案 方案的技術優勢。也因此,有人稱它為 市場架構 大量軟體企業,招聘系統架構師 sa 系統工程師 se 技術經理 售前技術顧問 方案經理時,職位能力中其實都包含了對 概...