作者jlovet (偷拿程式码的八卦)
看板Python
标题Re: [范例] 动态建造函式物件?
时间Thu Apr 22 10:39:25 2010
※ 引述《tumc (HIHIHI)》之铭言:
: 想请问一个功能...
: 利用factory函式可建造出动态物件
: 而函式也是物件,那要如何建造成动态物件呢?
: ex:
: class test():
: def kword(self): pass
: if __name__ == '__main__':
: t=test()
: myword='kword'
: 问题: 若要用myword及factory去建造出t.kword()的函式物件
: 那该如何做呢?
http://tinyurl.com/yj2o3ot
不过这是runtime object...
def get_class( kls ):
parts = kls.split('.')
module = ".".join(parts[:-1])
m = __import__( module )
for comp in parts[1:]:
m = getattr(m, comp)
return m
>>> D = get_class("datetime.datetime")
>>> D
<type 'datetime.datetime'>
根据你输入的名称弄出那个物件
http://tinyurl.com/2bq2pak
呼叫某个function可以这样
import foo
methodToCall = getattr(foo, 'bar')
result = methodToCall()
As far as that goes lines 2 and three can be compressed to:
result = getattr(foo, 'bar')()
去执行名子叫做 'bar'的function
如果你有兴趣可以再去看更深入的...
Jerry's Blog: Python run time extend by adding class methods
哇,可以一边执行一边变种阿...
--
2008年 台湾国 爱滋感染人数统计
异性性行为女 40 异性性行为男 296 同性性行为男 866
2009年 台湾国 爱滋感染人数统计
异性性行为女 42 异性性行为男 273 同性性行为男 895
详情请看ptt.cc L_BoyMeetsGi 版
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.186.107
1F:→ ykjiang:这种变种方式可以不用继承就修改物件的行为,很方便 04/22 12:14
2F:→ ykjiang:对 Python 来说,这些东西都是用 dict 来实做 04/22 12:14