關於Python中的類與屬性

2021-09-27 12:38:43 字數 2088 閱讀 9018

根據廖雪峰老師的**,學習過後的筆記

分析:

在class內部,可以有屬性和方法,而外部**可以通過直接呼叫例項變數的方法來運算元據,這樣,就隱藏了內部的複雜邏輯。如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線__,在python中,例項的變數名如果以__開頭,就變成了乙個私有變數(private),只有內部可以訪問,外部不能訪問。而通過設定兩個get_name(self)或者get_score(self)可以允許外部訪問!

class student(object):

...def get_name(self):

return self.__name

def get_score(self):

return self.__score

通過set(name)函式可以修改name屬性或者score屬性的值,但一般不會這麼幹!

class student(object):

...def set_score(self, score):

self.__score = score

有些時候,你會看到以乙個下劃線開頭的例項變數名,比如_name,這樣的例項變數外部是可以訪問的,但是,按照約定俗成的規定,當你看到這樣的變數時,意思就是,「雖然我可以被訪問,但是,請把我視為私有變數,不要隨意訪問」。

最後,根據以上,完成問題的答案!

#建立student類

class student(object):

#定義屬性

def __init__(self, name, gender):

self.name = name

self.__gender = gender

#定義函式使得類外部可以呼叫gender值

def get_gender(self):

return self.__gender

#定義函式使得類外部可以修改gender值,並設定gender值的有效性檢查

def set_gender(self,gender):

if gender in ('female','male'):

self.__gender=gender

else:

raise valueerror('invaild gender')

測試**:

# 測試樣例:

bart = student('bart', 'male')

if bart.get_gender() != 'male':

print('測試失敗!')

else:

bart.set_gender('female')

if bart.get_gender() != 'female':

print('測試失敗!')

else:

print('測試成功!')

另一問題:為了統計學生人數,可以給student類增加乙個類屬性,每建立乙個例項,該屬性自動增加:(關於類-繼承-多型的問題)

class student(object):

count = 0

def __init__(self, name):

self.name = name

student.count+=1

# 測試:

if student.count != 0:

print('測試失敗!')

else:

bart = student('bart')

if student.count != 1:

print('測試失敗!')

else:

lisa = student('bart')

if student.count != 2:

print('測試失敗!')

else:

print('students:', student.count)

print('測試通過!')

Python類的屬性與方法

1 類的私有屬性和方法 private attrs 兩個下劃線開頭,宣告該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時self.private attrs。private method 兩個下劃線開頭,宣告該方法為私有方法,不能在類地外部呼叫。在類的內部呼叫self.priva...

python中關於「類的屬性和方法」的個人通俗理解

在python中或者其他的語言中我自認為類是乙個比較難懂的概念。今天說的類的屬性和方法,我通過在網上和書上查詢,總結了一些自己的理解,跟大家分享一下,還請多多指教。我們為什麼定義類,主要是因為類具有繼承,多型等等一些特性,在這些特性的基礎上我們可以減少 的復用,也就是說我們可以將 打包起來。關於類的...

Python中類的方法屬性與方法屬性的動態繫結

最近在 學習python 純粹是自己的興趣愛好,然而並沒有系統地看python 程式設計書籍,覺得上面描述過於繁瑣,在 找了一些學習的 發現廖雪峰老師的 上面的學習資源很不錯,而且言簡意賅,提取了一些 python python 的執行 缺點就是沒有系統的看 python 的書籍,不能及時的將知識的...