python 定义函数

Python022

python 定义函数,第1张

params

就是(5, 5)

(5,) * 2 ,就是2个5的元组,乘号可以理解成相加。"*" * 30就是30个“*"的字符串

*params作为参数,前面的*号就是把params元组分解成元素的意思,这样就分开成为2个参数了。实际上传递给了x,y

于是就执行了power(5,5)

1、函数定义

①使用def关键字定义函数

def 函数名(参数1.参数2.参数3...):

"""文档字符串,docstring,用来说明函数的作用"""

#函数体

return 表达式

注释的作用:说明函数是做什么的,函数有什么功能。

③遇到冒号要缩进,冒号后面所有的缩进的代码块构成了函数体,描述了函数是做什么的,即函数的功能是什么。Python函数的本质与数学中的函数的本质是一致的。

2、函数调用

①函数必须先定义,才能调用,否则会报错。

②无参数时函数的调用:函数名(),有参数时函数的调用:函数名(参数1.参数2.……)

③不要在定义函数的时候在函数体里面调用本身,否则会出不来,陷入循环调用。

④函数需要调用函数体才会被执行,单纯的只是定义函数是不会被执行的。

⑤Debug工具中Step into进入到调用的函数里,Step Into My Code进入到调用的模块里函数。

涉及到状态保存,可以使用函子(书上这么翻译的,不晓得其他人是不是也这样叫),给你个例子,你比对着改。如果不懂,自己再延这个方向去查看资料。

class Strip:

    def __init__(self, characters): #初始化,将需要保留的状态信息存起来

        self.characters = characters

    def __call__(self, string): #创建的函子被使用时,自动调用__call__

        return string.strip(self.characters)

#下面是使用方法,两个语句是密切衔接的。

strip_punctution = Strip(',:.!?') #字符串参数将被__init__吃进去,并且保留在class中,

#相当于一种状态保存的方法,在你的例子中,你可以将用户表达式通过这种方式保存起来

strip_punctution('hello world!') #return 'hello world',他的功能是剥离characters

#字符串中出现的字符,此处把感叹号去掉了,

#这就是函子典型的使用方法,class中的__call__函数被自动调用,在你的

#例子中,你可以通过这样的方式调用函数,就不用每次重新输入表达式了。