python以其动态类型且强类型彪悍存在于世,于是这般,许多东西在这里都显得那么灵活轻巧。灵活轻巧本身没错,新手容易愣神——比如说:
def
__init__
(
self
,*pros,**attrs)
在这个函数中,我们该做何解呢?python和C亲密到都有指针了?不行!
由于语言学习基础不扎实,资质太浅,语言中 动态参数一说从未听过。其实也见过,不过有时候就是有盲点,没有那个冲动去了解为什么,比如说典型的java代码中,main函数的参数就是动态的。
python动态参数解释:
* 表示一个任意长度的tuple(元组),可以接受一连串的参数;
** 表示一个dictionary(字典),参数形式是“key=value”。
示例:
class Person:
def __init__(self,*pros,**attrs):
self.name = "jeff"
self.pros = pros
for (key,value) in attrs.items():
stm = "self.%s = \"%s\""% (key,value)
exec(stm)
if __name__ == "__main__":
jeff = Person(1,2,3,sex="boy")
print jeff.pros
print jeff.sex
print dir(jeff)
输出为:
(1, 2, 3)
boy
['__doc__', '__init__', '__module__', 'name', 'pros', 'sex']
(注:此处源码来自
http://bbmyth.iteye.com/blog/100521
,感谢前辈)
转载于:https://my.oschina.net/ernest/blog/26272