Python面向?qū)ο蟮囊稽c(diǎn)點(diǎn)基礎(chǔ)

一、定義類的屬性

1、直接在類中定義

2、在類的構(gòu)造函數(shù)中定義

二、訪問控制

python中沒有訪問控制,依靠python的編程規(guī)范,命名規(guī)則控制。

class Programmer:

????def __init__(self, name, age, salary):

????????self.name = name

????????self._age = age

????????self.__salary = salary

programmer = Programmer('Mike', 23, 100000)

print(programmer.__dict__)

?# 輸出結(jié)果為:?{'name': 'Mike', '_age': 23, '_Programmer__salary': 100000}

print(programmer.name)

?# 輸出結(jié)果為:Mike

print(programmer._age)

?# 輸出結(jié)果為:23

print(programmer._Programmer__salary)

?# 輸出結(jié)果為:100000

三、區(qū)分函數(shù)和方法的概念

函數(shù)是直接通過函數(shù)名調(diào)用的;方法是依附于一個(gè)類,通過對象名.方法名調(diào)用。

四、類的方法

python中類的方法也可以看作類的屬性。

方法的訪問控制和屬性的訪問控制相同。

@classmethod

調(diào)用方法時(shí)用類名調(diào)用,而不是某個(gè)實(shí)例。

@property

像訪問屬性一樣調(diào)用方法

示例如下:

class Programmer:

????????hobby ='playing games'

? ? ????def __init__(self, name, age, salary):

????????????????self.name = name

????????????????self._age = age

????????????????self.__salary = salary

????????def get_name(self):

????????????????print(self.name)

????????@classmethod

? ????? def get_age(cls):

????????????????print(cls.hobby)

????????@property

? ? ????def get_salary(self):

????????????????print(self.__salary)

programmer = Programmer('Mike', 23, 100000)

print(dir(programmer))

programmer.get_name()

Programmer.get_age()

programmer.get_salary

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容