python函数手册 stata_python函数参数与文档

函数参数

1.位置参数

定义形式:

deffunc(p1, p2, ...):pass

实例:

#位置参数,调用时传入的实参必须与形参一一对应(包括个数与位置)

defintroduce(name, age):print("I am {0}, and I am {1} years old.".format(name, age))

introduce("zhangsan", 18)

运行结果:

I am zhangsan, and I am 18 years old.

2.关键字参数

定义形式与位置参数相同

实例:

#正确的调用方式

introduce(name="lisi", age=20)

introduce(age=20, name="lisi")

introduce("lisi", age=20)

运行结果:

I am lisi, and I am 20 years old.

I am lisi, and I am 20 years old.

I am lisi, and I am 20 years old.

ps. 函数定义形式都是一样的,只是在调用的时候传入实参的时候形式不同:

1)若实参的个数与位置和形参都一样,则可以不必声明对应的形参名称。

2)若传参时顺序不同或想给后面的默认参数传参,则必须声明实参传给了哪个形参。

3.默认参数

定义形式:

默认参数必须位于普通参数的后面

def func(p1, p2=v2, p3=v3, ...):

func body

实例:

def introduce2(name, age, sex="boy", address="shanghai"):print("I am {0}, a {2}, and I am {1} years old, living in {3}".format(name, age, sex, address))

introduce2("zhangsan", 18)

introduce2("zhangsan", 18, "girl")

introduce2("zhangsan", 18, address="beijing")

introduce2(sex="girl", name="zhangsan", age=18)

运行结果:

I am zhangsan, a boy, and I am 18 years old, living in shanghai

I am zhangsan, a girl, and I am 18 years old, living in shanghai

I am zhangsan, a boy, and I am 18 years old, living in beijing

I am zhangsan, a girl, and I am 18 years old, living in shanghai

4.收集参数

当你不知道会有多少个参数传入进来的时候,可以使用收集参数将他们全部传入进来,也可以不传参。

1)普通收集参数

定义形式:

def func(*args):

func body

实例:

def introduce3(*args):print(type(args))print('Hello everyone, I am going to tell you something about myself')for i inargs:print(i)print('位置收集参数'.center(50,"#"))

introduce3()print('*'*30)

introduce3("zhangsan", 18)print('*'*30)

introduce3("zhangsan", 18, "boy")

运行结果:

######################位置收集参数######################

Hello everyone, I am going to tell you something about myself

******************************

Hello everyone, I am going to tell you something about myself

zhangsan

18

******************************

Hello everyone, I am going to tell you something about myself

zhangsan

18

boy

2)关键字收集参数

定义形式:

def func(**kwargs):

func body

实例:

print('关键字收集参数'.center(50,"#"))def introduce4(**kwargs):print(type(kwargs))for k,v inkwargs.items():print(k,'-----',v)

introduce4()print('*'*30)

introduce4(name="lisi", age=18, sex="man", hobby="music")

运行结果:

#####################关键字收集参数######################

******************************

name ----- lisi

age ----- 18

sex ----- man

hobby ----- music

5.解包参数

当你的普通参数位于一个列表中,或者关键字参数位于一个字典中,直接传入列表或字典只能代表一个参数,可以使用解包参数将它们的每一个元素传给不同的参数。

1)列表解包参数

定义形式:

调用函数时:func(*list)

实例:

print('列表解包参数'.center(50,"#"))

zhangsan= ["zhangsan", 18, "boy"]

introduce2(*zhangsan)print('*'*50)

introduce3(*zhangsan)

运行结果:

######################列表解包参数######################

I am zhangsan, a boy, and I am 18 years old, living in shanghai

**************************************************

Hello everyone, I am going to tell you something about myself

zhangsan

18

boy

2)字典解包参数

定义形式:

调用函数时:func(**dict)

实例:

print('字典解包参数'.center(50,"#"))

lisi={'name':'zhangsan','age':18,'sex':'man','hobby':'reading'}

introduce4(**lisi)

运行结果:

######################字典解包参数######################

name ----- zhangsan

age ----- 18

sex ----- man

hobby ----- reading

6.参数的混合使用

定义与调用顺序:普通位置参数,普通收集参数,默认参数,关键字收集参数

实例:

def stu(name, age, *args, sex="boy", **kwargs):print('Hi guys, I am happy to tell you about myself, my name is {0}, a {2}, {1} years old'.format(name, sex, age))for i inargs:print(i)for k,v inkwargs.items():print(k,'----',v)

stu("zhangsan",18)print('*'*30)

stu("lisi", 20, "girl")print('*'*30)

stu("lilei", 18, 'shanghai', 'freshman', hobby="dancing", state="single")

运行结果:

Hi guys, I am happy to tell you about myself, my name is zhangsan, a 18, boy years old

******************************

Hi guys, I am happy to tell you about myself, my name is lisi, a 20, boy years old

girl

******************************

Hi guys, I am happy to tell you about myself, my name is lilei, a 18, boy years old

shanghai

freshman

hobby ---- dancing

state ---- single

函数文档

定义形式:

deffunc(p1, p2, ...):'''func document

parameters statament

return statament'''func body

实例:

def stu(name, age, *args, sex="boy", **kwargs):'''this is the func document, where you can get help message

:param name: your name

:param age: your age

:param args: other info

:param sex: your sex

:param kwargs: other info

:return: print the the screen return none'''

pass

print(stu.__doc__)print('*'*30)

help(stu)

运行结果:

this is the func document, where you can get help message

:param name: your name

:param age: your age

:param args: other info

:param sex: your sex

:param kwargs: other info

:return: print the the screen return none

******************************

Help on function stu in module __main__:

stu(name, age, *args, sex='boy', **kwargs)

this is the func document, where you can get help message

:param name: your name

:param age: your age

:param args: other info

:param sex: your sex

:param kwargs: other info

:return: print the the screen return none

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值