zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【python】函数详解

Python 详解 函数
2023-06-13 09:17:21 时间

文章目录

基本函数-function

if '__main__' == __name__:
    a=100
    print(id(a))

模块的引用

import ku as liebiao
liebiao=[1,2,34,5,6,8,11]
diaoyong=bianle.maopao(liebiao) #只可以用新的变量名,更改库名
print(diaoyong)

模块搜索路径

先搜当前文件夹内有没有,再去指定路径找

import sys
print(f"sys.path: {sys.path}")

'''
['/Users/mac/Desktop/video/python/day16', 
'/Users/mac/Desktop/video/python', 
'/Applications/anaconda3/lib/python36.zip', 
'/Applications/anaconda3/lib/python3.6', 
'/Applications/anaconda3/lib/python3.6/lib-dynload', 
'/Applications/anaconda3/lib/python3.6/site-packages', 
'/Applications/PyCharm.app/Contents/helpers/pycharm_matplotlib_backend']
'''

不定长参数

python自定义函数中有两种不定长参数, 第一种是*XXX,在传入额外的参数时可以不用指明参数名,直接传入参数值即可。 第二种是**XXX,这种类型返回的是字典,传入时需要指定参数名

加了一个星号 :不定长参数会以元组(tuple)的形式导入存放所有未命名的变量参数。 加了两个星号 :参数会以字典的形式导入存放已命名的变量参数

def water(name,*args):
    print(name)
    for i in args:
        print(i)

if '__main__' == __name__:
    water("donggua ",1,2,3,4,5,600)

参数传递

传递元组

def f(aaa):
    print(aaa)
if '__main__' == __name__:
    f((123,1,2,3))

传递字典

def f(aaa):
    print(aaa)
if '__main__' == __name__:
    f({"123":1})

缺陷,容易改了原始数据,可以用copy()方法避免

def f(aaa):
    print(aaa)
if '__main__' == __name__:
    f({"123":1}.copy())

变量作用域

全局变量

global j

闭包closure

介于全局变量 局部变量 之间

nonlocal 用了这个声明闭包变量才能在内部修改闭包变量

匿名函数lambda表达式

if '__main__' == __name__:
    a=lambda x, y: x + y
    print(a(1,5))