博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python tutorial阅读之函数的定义与使用
阅读量:5213 次
发布时间:2019-06-14

本文共 2428 字,大约阅读时间需要 8 分钟。

函数的定义

Python 使用关键字def定义函数,格式与C语言类似,但是没有返回类型,参数也不需要设置类型。

def add(a, b):    """这是函数的文档字符串"""    return a + bdef append(data):    data.append(a) #如果data为可变对象时候,例如List、Dict,则会改变实参的值

函数调用 会为函数局部变量生成一个新的符号表。确切的说,所有函数中的变量赋值都是将值存储在局部符号表。变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表。因此,全局变量不能在函数中直接赋值(除非用 global 语句命名),尽管他们可以被引用。

Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。

1334574-20180214152723202-294135213.png

1334574-20180214152912702-1518662995.png

参数

默认参数: 为参数设定默认值,调用函数时,如果没有值即使用默认值。

def login(username,password = "123"):    """登录函数"""    passlogin("admin")login("admin","password")def f(a, L=[]):    L.append(a)    return Lprint(f(1))print(f(2))print(f(3))# 输出结果[1][1, 2][1, 2, 3]>>> def f(x = []):...     x.append(1)...     print(id(x))... >>> f()140693834878408>>> f()140693834878408>>> f()140693834878408>>>

关键字参数调用:即指定形式key = value来调用函数,关键字参数应该在位置参数后面。

def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):    print("-- This parrot wouldn't", action, end=' ')    print("if you put", voltage, "volts through it.")    print("-- Lovely plumage, the", type)    print("-- It's", state, "!")# 以下调用均是错误的parrot()                     # 必须参数没有parrot(voltage=5.0, 'dead')  # 关键字参数必须在位置参数之后parrot(110, voltage=220)     # **任何参数都不可以多次赋值**parrot(actor='John Cleese')  # 不存在该参数名#可变参数,有时候我们参数的数量是不定的,则可以使用*>>> def sum(*num):...     s = 0...     for x in num:...             s += x...     print(s)... >>> sum(1,2,3,4,5,6)21>>> num = [1,2,3,4]>>> sum(*num)10# 数量可变的关键字参数>>> def register(username, password, **info):...     for key, value in info.items():...             print(key + ":" + value)... >>> register('1', '2', sex = "boy", age = "20")sex:boyage:20>>> # *args 必须之后的必须是关键字参数

Lambda表达式

>>> def make_incrementor(n):...     return lambda x: x + n...>>> f = make_incrementor(42)>>> f(0)42>>> f(1)43

文档字符串

>>> def sum(*num):...     """This is used to cal sum """...         >>> print(sum.__doc__)This is used to cal sum

编码风格

使用 4 空格缩进,而非 TAB

在小缩进(可以嵌套更深)和大缩进(更易读)之间,4空格是一个很好的折中。TAB 引发了一些混乱,最好弃用
折行以确保其不会超过 79 个字符
这有助于小显示器用户阅读,也可以让大显示器能并排显示几个代码文件
使用空行分隔函数和类,以及函数中的大块代码
可能的话,注释独占一行
使用文档字符串
把空格放到操作符两边,以及逗号后面,但是括号里侧不加空格:a = f(1, 2) + g(3, 4)
统一函数和类命名
推荐类名用 驼峰命名, 函数和方法名用 小写_和_下划线。总是用 self 作为方法的第一个参数(关于类和方法的知识详见 初识类 )
不要使用花哨的编码,如果你的代码的目的是要在国际化环境。Python 的默认情况下,UTF-8,甚至普通的 ASCII 总是工作的最好
同样,也不要使用非 ASCII 字符的标识符,除非是不同语种的会阅读或者维护代码。

转载于:https://www.cnblogs.com/xmxj0707/p/8448404.html

你可能感兴趣的文章
Python-Mac 安装 PyQt4
查看>>
P2571 [SCOI2010]传送带
查看>>
哈希表1
查看>>
用Data Url (data:image/jpg;base64,)将小图片生成数据流形式
查看>>
实验2-2
查看>>
C#初识
查看>>
String,StringBuffer与StringBuilder的区别?? .
查看>>
JavaScript(三) 数据类型
查看>>
移动端rem布局屏幕适配插件(放js中便可使用)
查看>>
Docker
查看>>
bzoj2259 [Oibh]新型计算机
查看>>
对位与字节的深度认识
查看>>
C++编程基础二 16-习题4
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
服务器被疑似挖矿程序植入107.174.47.156,发现以及解决过程(建议所有使用sonatype/nexus3镜像的用户清查一下)...
查看>>
类型“XXX”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。
查看>>
JQuery 学习
查看>>
session token两种登陆方式
查看>>
C# ArrayList
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>