Python程式設計之屬性和方法例項詳解

2022-10-04 22:42:31 字數 1933 閱讀 3278

一、屬性

在python中,屬性分為公有屬性和私有屬性,公有屬性可以在類的外部呼叫,私有屬性不能在類的外部呼叫。公有屬性可以是任意變數,私有屬性是以雙下劃線開頭的變數。

下面我們定義乙個people類,它有乙個公有屬性name,和乙個私有屬性__age。

class people():

def __init(self):

self.name='張珊'

self.__age=24

我們建立乙個people類的例項,p1,當我們呼叫它的私有屬性__age時發現有如下錯誤。

>>> p1.__age

traceback (most recent call 程式設計客棧last):

file "", line 1, in

p1.__age

attributeerror: 'people' object has no attribute '__age'

這就說明了私有屬性不可以在類的外部使用。那麼我們要想呼叫私有屬性的值,就可以在類的內部通過定義乙個方法來呼叫。

>>> class people():

def __init__(self):

self.name='jack'

self.__age=23

def showinfo(self):

print(self.__age)

>>> p2=people()

>>> p2.showinfo()

23可能有人會問,為什麼加上雙下劃線的屬性,我們就不可以在類的外部呼叫了呢?那麼下面我們就**下hygdvxvcapwww.cppcns.comython物件導向的私有機制。

python中以雙下劃線開頭的屬性和方法,在被例項化後會自動在其名字前加_classname.因為名字被改變了,所以自然無法通過雙下滑線開頭的名字來訪問,從而達到不可進入的目的。

我們可以通過例項名.__dict__來檢視物件的屬性集合。

python中不同於其他物件導向的程式語言,python的設計哲學就是簡單至上,因此如果你真的想要呼叫私有屬性的話還是可以呼叫的。

二、方法

在python中方法分為公有方法、私有方法、類方法和靜態方法。

下面我們看乙個比較完整的例子

#!/usr/bin/python

#coding:utf-8

__author__ = 'mxi4oyu'

class peo程式設計客棧ple():

def __init__(self):

self.name='張珊'

self.__age=23

def fun1(self):

#共有方法可以在類的外部進行呼叫

#可以通過物件名.方程式設計客棧法名來呼叫

print("共有方法")

def __fun2(self):

#私有方法不能在類的外部進行呼叫

#可以在類的其他方法中呼叫私有方法

print("私有方法")

def funcshow(self):

self.__fun2()

@classmethod

#類方法要加上@classmethod修飾器,類方法可以通過類名.方法名進行呼叫

def fun3(self):

print("類方法")

@staticmethod

#靜態方法需要加上@staticmethod修飾器,靜態方法不需要加self,

#同樣可以通過類名.方法名呼叫

def fun4():

print("靜態方法")

if __name__=='__main__':

p1=people()

p1.fun1()

p1.funcshow()

people.fun3()

people.fun4()

本文標題: python程式設計之屬性和方法例項詳解

本文位址:

F 程式設計 物件導向程式設計之屬性和方法

類通過他們的方法和屬性被賦予內涵。方法是一種動作,屬於動詞,描述類可以做什麼或者它能這樣做 屬性,另一方面,則是形容詞,它有助於類的描述。一 定義屬性 屬性有三種不同的操作形式 唯讀 只寫 讀寫。屬性的讀操作通過get關鍵字來定義,並且返回屬性的值,而寫操作,則是通過set關鍵字來更新屬性的值。對於...

Python程式設計之event物件的用法例項分析

python提供了event物件用於執行緒間通訊,它是由執行緒設定的訊號標誌,如果訊號標誌位為假,則執行緒等待直到訊號被其他執行緒設定成真。這一點似乎和windows的event正好相反。event物件實現了簡單的執行緒通訊機制,它提供了設定訊號,清除訊號,等待等用於實現執行緒間的通訊。1.設定訊號...

Python屬性和方法

類屬性 類屬性,直接在類中定義的屬性是類屬性,類屬性可以通過類或類的例項訪問到,但是類屬性只能通過類物件來修改,無法通過例項物件修改 例項屬性 例項屬性,通過例項物件新增的屬性屬於例項屬性,例項屬性只能通過例項物件來訪問和修改,類物件無法訪問修改 類方法 例項方法 靜態方法 定義乙個類 class ...