91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中類如何使用

發布時間:2021-05-31 18:24:33 來源:億速云 閱讀:138 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關python中類如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、類的成員

類的成員包括:屬性和方法。

屬性可以分為:靜態屬性和實例屬性

方法可以分為:普通方法、類方法和靜態方法。

    python中類如何使用

1.1 類的屬性

屬性可以分為:靜態屬性和實例屬性。

實例屬性屬于對象,而靜態屬性屬于類。

通過類創建對象時,如果每個對象都具有相同的屬性,那么就使用靜態屬性。

1.1.1 靜態屬性的創建方式

靜態屬性是屬于類的,所以不用創建對象訪問。

class Province:
 
    # 靜態字段
    country = '中國'
 
 
# 直接訪問靜態字段
Province.country

例如:

python中類如何使用

1.1.2 實例屬性
lass Goods:
 
    def __init__(self):
        # 原價
        self.original_price = 100
        # 折扣
        self.discount = 0.8
 
    @property
    def price(self):
        # 實際價格 = 原價 * 折扣
        new_price = self.original_price * self.discount
        return new_price
 
    @price.setter
    def price(self, value):
        self.original_price = value
 
    @price.deleter
    def price(self):
        del self.original_price

例如:

python中類如何使用

實例屬性可以在構造方法中進行初始化。@property裝飾器可以把一個實例方法變成其同名屬性,以支持.號訪問。我們可以根據屬性的訪問特點,分別將三個方法定義為對同一個屬性:獲取、修改、刪除。

擴展:

對于靜態屬性還可以使用property函數的形式定義一個屬性。與@property實現原理類似。

property(fget=None, fset=None, fdel=None, doc=None)

class Foo:
 
    def get_bar(self):
        return 'get_bar'
 
    # *必須兩個參數
    def set_bar(self, value): 
        return 'set value' + value
 
    def del_bar(self):
        return 'del_bar'
 
    age = property(fget=get_bar,fset=set_bar,fdel=del_bar,doc='description...')

例如:

 python中類如何使用

1.2 類的方法

方法包括:普通方法、類方法和靜態方法。

普通方法:由對象調用;至少一個self參數;執行普通方法時,自動將調用該方法的對象賦值給self

類方法:由調用; 至少一個cls參數;執行類方法時,自動將調用該方法的復制給cls

靜態方法:由調用;無默認參數;

class Foo:
 
    def __init__(self, name):
        self.name = name
 
    def ord_func(self):
        """ 定義普通方法,至少有一個self參數 """
        # print self.name
        print('普通方法')
 
    @classmethod
    def class_func(cls):
        """ 定義類方法,至少有一個cls參數 """
        print('類方法')
 
    @staticmethod
    def static_func():
        """ 定義靜態方法 ,無默認參數"""
        print('靜態方法')

例如:

python中類如何使用

如果Python中沒有屬性,方法完全可以代替其功能。

二、類成員的修飾符

對于每一個類的成員而言都有兩種形式:

公有成員,在任何地方都能訪問。

私有成員,只有在類的內部才能方法。

私有成員和公有成員的定義不同:私有成員命名時,前兩個字符是下劃線。(特殊成員除外,例如:__init__、__call__、__dict__等)

ps:如果想要強制訪問私有字段,可以通過 【對象._類名__私有字段明 】訪問(如:obj._C__foo),不建議強制訪問私有成員。

class C:
	name = '公有靜態字段'
	__sname ='私有靜態字段'
 
	def pub_func(self):
		print(C.name)
 
	def pra_func(self):
		print(C._sname)
 
class D(C):
 
	def pub_show(self):
		print(C.name)
 
	def pra_show(self):
		print(C._sname)

例如:

python中類如何使用

注:不建議強制訪問私有成員。

三、類的特殊成員

3.1 __doc__

表示類的描述信息。

>>> class Foo:
    """ 描述類信息,這是用于看片的神奇 """
 
    def func(self):
        pass
 
>>> Foo.__doc__
' 描述類信息,這是用于看片的神奇

3.2  __module__ 和  __class__

__module__ 表示當前操作的對象在哪個模塊

__class__     表示當前操作的對象的類是什么

>>> class Foo:
    """ 描述類信息,這是用于看片的神奇 """
 
    def func(self):
        pass
>>> obj = Foo()
>>> obj.__module__
'__main__'
>>> obj.__class__
<class '__main__.Foo'>

3.3 __init__

構造方法,通過類創建對象時,自動觸發執行。

>>> class Foo:
 
    def __init__(self, name):
        self.name = name
        self.age = 18
 
        
>>> obj = Foo('test')
>>> obj.name
'test'

3.4  __del__

當對象在內存中被釋放時,自動觸發執行。

3.5 __call__

對象后面加括號,觸發執行。

>>> class Foo:
 
    def __init__(self):
        pass
    
    def __call__(self, *args, **kwargs):
 
        print('__call__')
 
        
>>> obj = Foo()
>>> obj()
__call__

3.6 __dict__

類或對象中的所有成員。

>>> class Province:
 
    country = 'China'
 
    def __init__(self, name, count):
        self.name = name
        self.count = count
 
    def func(self, *args, **kwargs):
        print('func')
>>> print(Province.__dict__) # 獲取類的成員,即:靜態字段、方法
{'__module__': '__main__', 'country': 'China', '__init__': <function Province.__init__ at 0x0000000002F39820>, 'func': <function Province.func at 0x0000000002F398B0>, '__dict__': <attribute '__dict__' of 'Province' objects>, '__weakref__': <attribute '__weakref__' of 'Province' objects>, '__doc__': None}
>>> obj1 = Province('jiangxi',10000)
>>> print(obj1.__dict__) #獲取 對象obj1 的成員
{'name': 'jiangxi', 'count': 10000}

3.7  __str__

如果一個類中定義了__str__方法,那么在打印 對象 時,默認輸出該方法的返回值。有點像java中的toString方法。

>>> class Foo:
 
    def __str__(self):
        return 'test'
 
>>> obj = Foo()
>>> print(obj)
test

3.8 __getitem__、__setitem__、__delitem__

用于索引操作,如字典。以上分別表示獲取、設置、刪除數據。

3.9 __getslice__、__setslice__、__delslice__

三個方法用于分片操作。

3.10 __iter__

用于迭代器,之所以列表、字典、元組可以進行for循環,是因為類型內部定義了 __iter__。

>>> class Foo(object):
 
    def __init__(self, sq):
        self.sq = sq
 
    def __iter__(self):
        return iter(self.sq)
>>> for i in obj:
	print(i)
11
22
33
44
>>>

上述就是小編為大家分享的python中類如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

酉阳| 天峻县| 海丰县| 娄底市| 临沧市| 南投市| 东乡| 花莲市| 丘北县| 留坝县| 盐源县| 武鸣县| 桐乡市| 原平市| 白河县| 泉州市| 华亭县| 巢湖市| 彭水| 正阳县| 张家口市| 富宁县| 西吉县| 井陉县| 安远县| 鹤山市| 莱芜市| 彭山县| 宣威市| 澳门| 新野县| 张家界市| 舞钢市| 吉安县| 嫩江县| 福州市| 北宁市| 甘德县| 临高县| 固始县| 太仆寺旗|