参数魔法(二)

来源:互联网 发布:下载电视剧的软件 编辑:程序博客网 时间:2024/04/30 09:54
放假了 ,不回去了,就呆在这里了。四周都是空空的了,一个人都没了。一下子都空了很多,感觉也憋得难受。想找个人说话。
电脑换回windows了,重新弄了一个环境,这门语言不可以这么放弃了。linux里面配置方便,但是用起来没有集成的环境,在win下面还好吧,虽然不是原生的环境,还不错。
下面继续来写,只不过是在win下面了。
1.关键字函数和默认值
到现在来说,所有使用的参数都是位置参数,因为他们的位置很重要。下面这个要说的关键字函数,名字是比位置更重要的。先看看位置参数的例子:
def hello_1(greeting,name):
    print '%s,%s!'%(greeting,name)
print hello_1('wang','lei')
def hello_2(name,greeting):
    print '%s,%s'%(name,greeting)
print hello_2('li','ning')
hello_1('wang','lei')
hello_2('wang','lei')
运行结果:
wang,lei!
wang,lei
在顺序上面是没有什么变化的。这个是用集成的编辑器来运行的,和以前的格式不同。广告时间:ulipad,写代码,编辑器,自动补全,随心所欲,是您居家旅行的必备佳品。
这些都是位置参数,在函数的里面,参数的位置很重要,如果,他们的位置改变一下,那么输出的值就会改变位置。
def hello_2(name,greeting):
    print '%s,%s'%(greeting,name)
结果:
lei,wang
这就可以说明问题了,上面两个教材中的例子,似乎是多余了一个。不知道他们外国人的想法怎么那么奇怪。
有的时候,如果参数比较多的话,在函数里面,记住他们的位置,对我们来说,简直痛苦啊。所以,这个时候,使用关键字参数就可以解决这些问题。
def hello_3(greet='hello',name='wang'):
    print '%s,%s'%(greet,name)
hello_3(greet='hello',name='wang')
结果:
hello,wang
def hello_3(greet='hello',name='wang'):
    print '%s,%s'%(greet,name)
hello_3(name='wang',greet='hello')
结果:
hello,wang
从这里就可以看出来作用了。只是要多打几个字而已。他还有一个更加啊厉害的功能,就是可以提供默认值。
def hello_4(greeting='hello',name='li'):
    print '%s,%s'%(greeting,name)
hello_4()
hello_4('hi')
hello_4(name='zhang')
hello_4(greeting='nihao')
结果:
hello,li
hi,li
hello,zhang
nihao,li
这个是不是很强大?
2.收集参数
收集参数是为了提供多个参数
def print_params(*para):
    print para
print_params('zhong')
结果:
('zhong',)
打印出来的是一个元祖,只含有一个
print_params(2,3,4,6)
结果:
(2, 3, 4, 6)
所以,里面的星星符号的意思就是把后面的参数给收集起来,然后放到一个元组里面,所以,称这样的,东西为收集参数。下面的例子更可以说明问题。
def para(title,*paras):
    print title
    print paras
para('paras',1,2,3)
结果:

paras
(1, 2, 3)

这样看的很清楚了吧。很容易理解了。不过,还有一个变态的玩意儿,**,双星星,呵呵,看起来和敏感词似的。

他的作用就是收集关键字参数用的,这个还记得吧,之前讲的,对于名字比较重要的参数。

def ss(**ss):
    print ss
ss(x=1,y=5,z=33)

结果:

{'y': 5, 'x': 1, 'z': 33}

这个返回的是一个字典了,不是元组了。来一个综合的:

def s2(x,y,z=3,*pose,**key):
    print x,y,z
    print pose
    print key
s2(1,2,3,4,5,6,7,foo=1,bar=2)

结果:

1 2 3
(4, 5, 6, 7)
{'foo': 1, 'bar': 2}


好了,这个就这么多的东西。慢慢加油!

原创粉丝点击