亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

python Class:面向對象高級編程 __getattr__

發布時間:2020-07-23 23:40:52 來源:網絡 閱讀:1831 作者:虎皮喵的喵 欄目:編程語言

官網解釋:

  • object.__getattr__(selfname)

  • Called when an attribute lookup has not found the attribute in the usual places (i.e. it is not an instance attribute nor is it found in the class tree for self). name is the attribute name. This method should return the (computed) attribute value or raise an AttributeError exception.


當我們想調用Class中某些東西,而Class中沒有,解釋器鐵定報錯,停止運行,那有人就想了:真麻煩,每次都要重新執行一遍,如果當我調用錯了內容,程序能把我這個錯誤當默認程序執行,而不停止我程序運行就好了。so,為了解決這類問題,就出來了__getattr__這個函數了。

我猜的,因為解決程序困難也是一種需求。 


看沒有__getattr的出錯調用:

#!/usr/bin/python

# -*- coding: utf-8 -*-


class Student(object):

    def __init__(self):

        self.name = 'Michael'


s = Student()

print s.name

print s.score      #Class中沒有這個屬性

python Class:面向對象高級編程 __getattr__

look, 第一個print正常執行,第二個由于Class中沒有這個屬性,所以就報錯了。


再看,帶__getattr__的Class:

#!/usr/bin/python

# -*- coding: utf-8 -*-


class Student(object):

    def __init__(self):

        self.name = 'Michael'


    def __getattr__(self, other):

        if other=='score':

            return 99

            

s = Student()

print s.name

python Class:面向對象高級編程 __getattr__

print s.score   #Class中沒有這個屬性

python Class:面向對象高級編程 __getattr__

print s.gg       #Class中沒有這個屬性

python Class:面向對象高級編程 __getattr__


look again, print 的score 和 gg 在Class中都沒有定義,但都有輸出。因為程序往__getattr__中找,剛剛好定義了一個字符判斷 if other=='score':, 所以輸出了99 ,而gg一個字都沒提,就默認輸出None了。是不是感覺以后碼程序的時候再也不用擔心程序停止運行了。



※發現的強大的鏈式調用寫法:

class Chain(object):

    def __init__(self, path=''):
        self._path = path
    def __getattr__(self, path):
        return Chain('%s/%s' % (self._path, path))   #調用自己
    def __str__(self):
        return self._path

    __repr__ = __str__
    
f = Chain()
print (f.www.anc.do.glob)

結果:

/www/anc/do/glob


向AI問一下細節

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

AI

迁安市| 广灵县| 云霄县| 宝清县| 奈曼旗| 汝南县| 黔西| 瓦房店市| 岑巩县| 瑞昌市| 搜索| 漳平市| 昔阳县| 潮安县| 乐清市| 溆浦县| 吴忠市| 林口县| 壤塘县| 景宁| 浑源县| 温州市| 含山县| 英德市| 云安县| 龙里县| 天峨县| 定日县| 乡城县| 鹤壁市| 邳州市| 江华| 德阳市| 河源市| 木兰县| 维西| 商水县| 和顺县| 独山县| 忻州市| 凤翔县|