Python 函数

fansichao 2021-10-23 16:16:35
Categories: Tags:

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

参数

参数种类:

1
2
def demo1(arg1, arg2, file_path=None, *args, **kwargs):
pass

匿名函数 lambda

使用 lambda 来创建匿名函数.

匿名函数的特点:

函数语法:

1
2
3
4
# 表达式语法
lambda [arg1 [,arg2,.....argn]]:expression
# 样例
sum = lambda arg1, arg2: arg1 + arg2;

变量作用域

变量作用域:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
global_arg = 0
def demo1(count=0)
global global_arg
global_arg += 1
print("demo1 %d"%global_arg)
demo2()

def demo2():
global global_arg
print("demo2 1 %d"%global_arg)
global_arg += 1
print("demo2 2 %d"%global_arg)
# count 是函数demo1中的 局部变量
# global_arg 是程序的全局变量

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类的三大特性: 继承 多态 封装

http://www.cnblogs.com/ajaxa/p/9049518.html

模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和 Python 语句。

代码样例

1
2
3
# file demo.py
def func(arg):
return arg

模块的使用

1
2
3
4
5
6
import demo
print demo.func(1)

from demo import func
print func(1)

使用 dir() 获取模块中所有函数列表

如果将整个目录作为包,需要目录中含有 __init__.py 文件

代码样例

1
2
3
4
5
6
7
8
9
10
11
12
13
# demo/demo1.py
def get_val(arg):
return arg

# demo/__init__.py
#! -*- coding:utf-8 -*-

# demo/demo2.py
from demo.demo1 import get_val
def func(arg):
get_val(arg)
if __name__ == '__main__':
func(2)

将模块当成脚本运行 python -m
python -m demo.demo2

文档风格

如下是reST文档风格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 文件中内置包引用,统一管理
import datetime
def demo1(arg1, arg2, file_path=None, *args, **kwargs):
u""" 函数注释(和下方param空行)

:param arg1: 参数1 (格式说明 :param+空格+参数+:+空格+参数解释)
:type arg1: int
:param arg2: 参数2
:type arg2: int

:returns: The return value. True for success, False otherwise.
:rtype: bool

.. _PEP 484:
https://www.python.org/dev/peps/pep-0484/

"""
# 延迟调用
import pandas as pd
if file_path:
pd.read_csv(file_path,**kwargs)

now_time = datetime.datetime.now()
return arg3 if bool(arg3) else arg1 + arg2

if __name__ == '__main__':
demo1(1,2)

参考资源

Python 函数说明 https://www.runoob.com/python/python-functions.html
Python 模块说明 https://www.runoob.com/python/python-modules.html
面向对象 类说明 https://www.runoob.com/python3/python3-class.html
类的详解 https://blog.csdn.net/weixin_42105064/article/details/80151587