類中的集中特殊方法

2021-08-08 09:22:38 字數 1695 閱讀 6554

'''類當中的特殊方法'''

class person(object):

_class_var = 'class_var'

#初始化方法,用於初始化物件內部變數,第乙個入參表示當前物件,外部呼叫自動隱藏

def __init__(self,message, name):

self._message = message

self._name = name

#例項方法,用於建立並返回例項物件,第乙個入參表示當前類,外部呼叫自動隱藏,建立的物件取決於內部返回值

def __new__(cls, *args, **kwargs):

return 3

#類方法,類公有方法,所有物件的同一操作,函式內部只能夠訪問類級別的變數,物件個體變數不能返回

@classmethod

def get_class_var(cls):

return cls._class_var

#靜態方法,不涉及類和物件操作,僅僅是歸於類空間內的一般方法,相當於模組內方法

@staticmethod

def static_method():

print('static_methon')

#屬性方法,設定屬性方法後,函式可以用呼叫公有屬性一樣呼叫,方法執行不需要加括號(無參)

#直接呼叫相當於獲取返回值,賦值操作相當於傳入引數

#首先,標記為屬性方法,此時就可以直接去括號呼叫,但是不能攜帶引數

#預設完成getter

@property

def show_message(self):

print(self._message)

#想要直接進行賦值,標記為屬性方法的setter方法即可

#setter方法可以直接進行等號賦值操作

#setter方法中進行引數設定,對應的屬性方法進行相關操作

#因此,基本屬性方法分為兩種

#1.有參方法:方法內部需要設定變數,需要設定setter修飾方法,setter方法進行賦值,基本方法進行操作

#2.無參方法:無參函式,內部進行操作,無序外部傳參

#基本的屬性方法property必須是無參的

#setter

@show_message.setter

def show_message(self, message):

self._message = message

#執行del刪除操作

@show_message.deleter

def get_message(self):

print('deleter')

'''在設定屬性方法時,不建議單獨的設定,可以通過下面的方式進行設定,清晰方便易於理解

'''def set_name(self, name):

self._name = name

def get_name(self):

return self._naem

def del_name(self):

del self._name

'''通過property方法進行設定,更加清晰方便

而且值需要乙個名稱就可以完成傳參,取值和刪除三種功用

不必一一去為基本的屬性方法新增修飾

'''name = property(fset=set_name,fget=get_name,fdel=del_name)

python類中的特殊方法

python類特殊方法 方法功能說明 new 類的靜態方法,用於確定是否建立物件 init 建構函式,生成物件時呼叫 del 析構函式,釋放物件時呼叫 add sub mul truediv floordiv mod pow repr 列印,轉換 setitem 按照索引賦值 getitem 按照索...

特殊的類方法

hasattr self,item 點號攔截運算,注 這是乙個繫結物件方法 在乙個類中,如果類裡定義了該方法 大多數內建類是沒有的 則這個類生成的物件加點呼叫屬性或方法時,如果呼叫的名字不存在,不會報錯,會執行 hasattr 這個方法。class person object def init se...

類方法中的一類特殊方法 構造方法。

書寫方法的格式 修飾符返回值方法名呼叫過程中方法體 可能出現的例外 public int void addnumber 引數 throw excepion 例 public int addnumber int a,int b 注 方法名中的引數int a,int b為區域性變數 構造方法是當用類生成...