#!/usr/bin/python
# -*- coding:utf-8 -*-

'''
1.传递任意数量的实参
  Python允许函数传入任意数量的实参,例如:
  *messages形参名中的*表示让Python创建一个空的名称为messages的元组,接收传入的所有值

'''

def get_person_message(*messages):
    concat = ''
    for message in messages:
        concat += ' ' + message
    print "\nShow Person's Message:" + concat 
get_person_message('CSDN','http://blog.csdn.net/binguo168')
get_person_message('http://www.cnblogs.com/binguo2008/')        
get_person_message('binguo','27','male')    
get_person_message('binguo168','27','male','basketball','football')    

'''
2.使用位置实参和任意数量的实参
  如果函数需要接收不同类型的位置实参,需要将接收任意数量的实参放在最后。
'''

def set_computer_configure(cpu,memory,*others):
    concat = ''
    for info in others:
        concat += ' '+ info
    print 'cpu:'+cpu+' ' + memory + 'memory:' + ' ' +'others:' +concat

set_computer_configure('Core i7','32g' ,'monitor:LG 27UD68','Display Card:GeForce GTX 1060')

set_computer_configure('Intel Xeon E5-2679','128g' ,'monitor:LG 27UD68')

'''
3.使用任意数量的关键字实参(接收任意数量的键值对)
  通过**arguname来实现接收任意数量的实参,其中两个**表示让Python创建一个空的字典,传入的所有键值对都放在这个字典中
'''       

def build_user_profile(username,**othersinfo):
    dict_profile = {}
    dict_profile['username'] = username
    for userkey,uservalue in othersinfo.items():
        dict_profile[userkey] = uservalue
    return dict_profile
test_user_profile1 = build_user_profile(username = 'binguo',age = 27,gender = 'male')    
print test_user_profile1
test_user_profile2 = build_user_profile(username = 'binguo168',hobby = 'basketball',blogs = 'CSDN',blog_url = 'http://blog.csdn.net/binguo168')    
print test_user_profile2

'''
4.将函数存储在模块中
'''         
#导入整个模块
import importModel
systemInfo = importModel.get_system_info(1)
print systemInfo

#导入指定的函数      
from importModel import get_system_info,get_system_owner
get_system_info(1)
get_system_owner()       

#使用as对模块设定别名
import importModel as testModel
testModel.get_system_info(1)

#导入模块中所有的函数
from importModel import *
get_system_info(1)
get_system_owner()   

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐