函数

定义函数

def hello(name):
    print 'Hello',name


print def('CoderInfo') # result: Hello CoderInfo

函数的文档介绍

def hello(name):
    'doc test'    # 除了注释你还可以用这种方式来解释函数的作用
    print 'Hello',name,'!'


print hello.__doc__  # result: 'doc test'

参数的更改

def changeArgs(name):
    name = 'Moon'
    print name


name = 'CoderInfo'
changeArgs(name)  # result: 'Moon'

print name  # result: 'CoderInfo'  # 这里可以看出函数并没有改变参数的本身

# 这里由于参数是不可变的字符串,如果是可变的列表呢,见如下:
#############################################################

def changeArgv(name01):
    name01[0] = 'Moon'
    print 'After change:',name01

name01 = ['Coder','Info']
changeArgv(name01)   # result: After change: ['Moon', 'Info']

print name01 # result: ['Moon', 'Info'] 如果是可变的列表,参数被改变了

关键字参数与默认值

关键字参数

def keyWordsArgs(name,age):
    print name,age

n = 'CoderInfo'
a = 26

keyWordsArgs(n,a)  # result: CoderInfo 26
keyWordsArgs(a,n) # result: 26 CoderInfo
keyWordsArgs(age=a, name=n) # result: CoderInfo 26

参数的默认值

def argsDefaultValue(name='CoderInfo',age=26):
    print name,age

argsDefaultValue('Moon') # result: Moon 26

动态参数

def dynamicArgs(*users):
    print users

dynamicArgs('CoderInfo') # result: ('CoderInfo',)

dynamicArgs('CoderInfo','Moon') # result: ('CoderInfo','Moon')

######关键字的动态参数#####
def dynamicKeyWordsArgs(name,*users,**keys):
    print name,users,keys

dynamicKeyWordsArgs('Coder','Info','Moon',demo='key01',demo02='key02') # result: Coder ('Info', 'Moon') {'demo': 'key01', 'demo02': 'key02'}

# 动态参数的一些其他用法
names = ('Coder','Info')
def hello(name1,name2):
    print 'Hello',name1,name2

hello(*names) # result: Hello Coder Info  参数传递元组

names1 = {'name1':'Coder','name2':'Info'}
hello(**names1) # result: Hello Coder Info 参数传递字典









你可能感兴趣的:(函数)