python中的动态参数

  • Post author:
  • Post category:python


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