亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python中getattr函數使用方法 getattr實現工廠模式

2020-02-23 05:05:30
字體:
來源:轉載
供稿:網友

看了下函數本身的doc
代碼如下:
getattr(object, name[, default]) -> value

Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y.
When a default argument is given, it is returned when the attribute doesn't
exist; without it, an exception is raised in that case.

解釋的很抽象 告訴我這個函數的作用相當于是

object.name

試了一下getattr(object,name)確實和object.name是一樣的功能.只不過這里可以把name作為一個變量去處理書上的例子很好的說明了這個函數的功用,使用getattr可以輕松實現工廠模式。

例:一個模塊支持html、text、xml等格式的打印,根據傳入的formate參數的不同,調用不同的函數實現幾種格式的輸出

代碼如下:
import statsout
def output(data, format="text"):                          
    output_function = getattr(statsout, "output_%s" %format)
    return output_function(data)
[code]
這個例子中可以根據傳入output函數的format參數的不同 去調用statsout模塊不同的方法(用格式化字符串實現output_%s)

返回的是這個方法的對象 就可以直接使用了 如果要添加新的格式 只需要在模塊中寫入新的方法函數 在調用output函數時使用新的參數就可以使用不同的格式輸出

確實很方便


為了加深對getattr函數的理解 轉載一篇英文的說明

Python's getattr function is used to fetch an attribute from an object, using a string object instead of an identifier to identify the attribute. In other words, the following two statements are equivalent:

[code]
value = obj.attribute
value = getattr(obj, "attribute")
If the attribute exists, the corresponding value is returned. If the attribute does not exist, you get an AttributeError exception instead.

The getattr function can be used on any object that supports dotted notation (by implementing the __getattr__ method). This includes class objects, modules, and even function objects.

path = getattr(sys, "path")
doc = getattr(len, "__doc__")
The getattr function uses the same lookup rules as ordinary attribute access, and you can use it both with ordinary attributes and methods:

result = obj.method(args)

func = getattr(obj, "method")
result = func(args)
or, in one line:

result = getattr(obj, "method")(args)
Calling both getattr and the method on the same line can make it hard to handle exceptions properly. To avoid confusing AttributeError exceptions raised by getattr with similar exceptions raised inside the method, you can use the following pattern:

try:
    func = getattr(obj, "method")
except AttributeError:
    ... deal with missing method ...
else:
    result = func(args)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久99久在线视频| 日韩美女av在线免费观看| 久热精品视频在线观看一区| 中文字幕精品视频| 亚洲免费一级电影| 成人看片人aa| 国产精品一香蕉国产线看观看| 2021国产精品视频| 亚洲欧美三级伦理| 国产视频精品一区二区三区| 高跟丝袜欧美一区| 久久久视频精品| 国产91|九色| 国产精品扒开腿做| 亚洲欧美在线磁力| 日韩精品极品在线观看播放免费视频| 日韩av成人在线观看| 2018国产精品视频| 91av在线免费观看| 亚洲欧美在线免费观看| 中文字幕在线观看日韩| 日韩av日韩在线观看| 中文字幕日韩av综合精品| 亚洲欧美国内爽妇网| 午夜精品视频网站| 亚洲人午夜色婷婷| 97avcom| 97福利一区二区| 欧美床上激情在线观看| 国产精品免费久久久| 国产精品久久一| 久久久免费电影| 亚洲毛片在线观看| 亚洲va欧美va国产综合剧情| 欧美精品免费播放| 亚洲最大的网站| 欧美激情网站在线观看| 亚洲中国色老太| 国产精品国产三级国产aⅴ9色| 不用播放器成人网| 国产精品爽爽爽爽爽爽在线观看| 久久亚洲精品小早川怜子66| 欧美午夜精品久久久久久人妖| 久久久女人电视剧免费播放下载| 国产91精品视频在线观看| 亚洲综合在线播放| 亚洲国产欧美自拍| 欧美在线性视频| 亚洲视频第一页| 菠萝蜜影院一区二区免费| 欧美性极品xxxx做受| 96精品久久久久中文字幕| 91国产一区在线| 国产欧美一区二区三区久久| 精品福利在线观看| 最近2019免费中文字幕视频三| 欧美大人香蕉在线| 亚洲激情免费观看| 国产精品久久久久久久久久久久久久| 国产极品精品在线观看| 中文国产亚洲喷潮| 5252色成人免费视频| 国产自摸综合网| 韩国19禁主播vip福利视频| 日本a级片电影一区二区| 91色视频在线导航| 最好看的2019的中文字幕视频| 91影视免费在线观看| 国产一区二中文字幕在线看| 亚洲国产精品悠悠久久琪琪| 国产精品美女主播在线观看纯欲| 欧美激情高清视频| www.xxxx精品| 日韩中文字幕国产精品| 亚洲深夜福利网站| www.欧美精品| 亚洲欧美在线播放| 亚洲情综合五月天| 成人久久久久久久| 国产成人精品视频在线观看| 亚洲欧洲在线观看| 亚洲成年人影院在线| 在线亚洲欧美视频| 亚洲欧洲自拍偷拍| 欧美天天综合色影久久精品| 欧美性视频在线| 久久久免费高清电视剧观看| 欧美精品在线免费观看| 日韩精品在线观看网站| 国产黑人绿帽在线第一区| 中文字幕欧美视频在线| 91亚洲永久免费精品| 国产精品丝袜久久久久久高清| 欧美高清一级大片| 国产精品永久在线| 在线视频一区二区| 红桃视频成人在线观看| 亚洲精品456在线播放狼人| 热re91久久精品国99热蜜臀| 亚洲图片在区色| 亚洲a级在线播放观看| 亚洲欧美精品中文字幕在线| 国产一区二区激情| 亚洲国产精品资源| 日韩美女在线观看一区| 国产精品国产自产拍高清av水多| 亚洲精选一区二区| 日韩电影免费观看在线观看| 91香蕉国产在线观看| 日本一区二三区好的精华液| 国产主播在线一区| 日韩在线资源网| 亚洲一区二区三区视频播放| 91久久久久久国产精品| 欧美成人一二三| 亚洲精品在线观看www| 亚洲国产精品小视频| 亚洲一区二区三区sesese| 国产精品美女午夜av| 日韩美女写真福利在线观看| 中文字幕少妇一区二区三区| 97精品国产97久久久久久春色| 欧美另类极品videosbest最新版本| 欧美人在线观看| 68精品国产免费久久久久久婷婷| 欧美最猛性xxxxx免费| 亚洲国产精品热久久| 欧美洲成人男女午夜视频| 91精品视频在线免费观看| 中文字幕不卡在线视频极品| 精品久久久久久中文字幕一区奶水| 成人a视频在线观看| 亚州av一区二区| 韩曰欧美视频免费观看| 97视频免费观看| 亚洲精品99久久久久中文字幕| 91国在线精品国内播放| 国内精品美女av在线播放| 亚洲性线免费观看视频成熟| 色伦专区97中文字幕| 国产极品jizzhd欧美| 97久久久久久| 欧美激情精品久久久久久黑人| 国产精品爽爽爽爽爽爽在线观看| 九色精品美女在线| 在线成人中文字幕| 亚洲乱码国产乱码精品精| 中文日韩在线观看| 91亚洲国产成人精品性色| 久久久久久av| 国产97色在线| 国产精品影片在线观看| 中文字幕日韩欧美精品在线观看| 日韩在线播放视频| 欧美日韩亚洲国产一区| 欧美精品18videos性欧| 欧美激情免费看| 97视频网站入口| 精品视频—区二区三区免费| 久久综合色影院| 国产欧美日韩免费看aⅴ视频| 亚洲欧美国产日韩中文字幕| 91精品久久久久久久久久久| 欧美激情视频播放|