日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Python類的常用高級(jí)函數(shù)匯總_python

作者:Mar丶流年 ? 更新時(shí)間: 2022-05-01 編程語(yǔ)言

1.基礎(chǔ)介紹

函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。

2.定義一個(gè)函數(shù)

你可以定義一個(gè)由自己想要功能的函數(shù),以下是簡(jiǎn)單的規(guī)則:

  • 函數(shù)代碼塊以 def 關(guān)鍵詞開(kāi)頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()。
  • 任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。
  • 函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串—用于存放函數(shù)說(shuō)明。
  • 函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。
  • return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

3.__init__

# coding:utf-8

if __name__ == '__main__':

? ? '''
? ? 定義:def __init__(self,參數(shù)1,參數(shù)2......):
? ? ? ? ......
? ? 使用:在類實(shí)例化時(shí)觸發(fā) ?類名(參數(shù)1,參數(shù)2.......)
? ? '''

? ? class A(object):
? ? ? ? def __init__(self, name, sex):
? ? ? ? ? ? print(f'name is {name}, sex is {sex}')

? ? a = A('xie', 'man') ?# name is xie, sex is man

4.__getattr__

# coding:utf-8

if __name__ == '__main__':

? ? '''
? ? 定義: def __getattr(self,屬性名)
? ? 使用:在訪問(wèn)類不存在的或無(wú)權(quán)限的屬性時(shí)觸發(fā) object.屬性名
? ? '''

? ? class B(object):
? ? ? ? __name = 'rui'
? ? ? ? name = 'xie'

? ? ? ? def __getattr__(self, name):
? ? ? ? ? ? return f'name is {name}'

? ? b = B()
? ? print(b.name) ?# xie
? ? print(b.__name) ?# name is __name
? ? print(b.sex) ?# name is sex
? ? print(b._B__name) ?# rui

5.__setattr__

# coding:utf-8

if __name__ == '__main__':

? ? '''
? ? 定義: def __setattr__(self,屬性名,屬性值)
? ? 使用: 給類設(shè)置屬性值時(shí)觸發(fā) object.屬性名 = 屬性值
? ? '''

? ? class C(object):
? ? ? ? name = ''
? ? ? ? __name = ''
? ? ? ? __sex = ''

? ? ? ? def __setattr__(self, key, value):
? ? ? ? ? ? print(f'I want set key:{key},value:{value}')

? ? c = C()
? ? c.name = 'xie' ?# I want set key:name,value:xie
? ? c.age = '6666' ?# I want set key:age,value:6666
? ? c.__sex = 'man' ?# I want set key:__sex,value:man

6.__call__

# coding:utf-8

if __name__ == '__main__':

? ? '''
? ? 定義: def __call__(self,參數(shù)1,參數(shù)2......)
? ? 使用: 把類實(shí)例當(dāng)做函數(shù)調(diào)用,通過(guò)object(參數(shù)1,參數(shù)2......)觸發(fā)
? ? '''

? ? class D(object):
? ? ? ? def __call__(self, *args, **kwargs):
? ? ? ? ? ? print(f'args is {args},kwargs is {kwargs}')

? ? d = D()
? ? d(*(1, 2, 3), **{'name': 'xie'}) ?# args is (1, 2, 3),kwargs is {'name': 'xie'}

7.__str__

# coding:utf-8

if __name__ == '__main__':

? ? '''
? ? 定義: def __str__(self)
? ? 使用: 打印對(duì)象時(shí)觸發(fā) print(object)
? ? '''
? ? class F(object):
? ? ? ? def __str__(self):
? ? ? ? ? ? return '通常用來(lái)描述類'

? ? f = F()
? ? print(f) ?# 通常用來(lái)描述類

原文鏈接:https://blog.csdn.net/qq_29744347/article/details/122959011

欄目分類
最近更新