【Python3】Python函数

文章目录

    • 1. 函数对象
    • 2. 函数的嵌套
      • 2.1 函数的嵌套的调用
      • 2.2 函数的嵌套定义
    • 3. 名称空间
      • 3.1 内置名称空间
      • 3.2 全局名称空间
      • 3.3 局部名称空间
    • 4. 作用域
    • 6. 闭包函数
    • 6. 装饰器
    • 7. 迭代器
    • 8. 生成器
    • 9. 内置函数

1. 函数对象

函数是第一类对象,即函数可以当做数据传递

  • 可以被引用
  • 可以当做参数传递
  • 返回值可以是函数
  • 可以当做容器类型的元素
def foo():
    print('from foo')

def index():
    print('from index')

dic = {
    'foo':foo,
    'index':index,
}

while True:
    choice = input(">>>>>").strip()
    if choice in dic:
        dic[choice]()

2. 函数的嵌套

2.1 函数的嵌套的调用

def max(x,y):
    return x if x > y else y

def max4(a,b,c,d):
    res1 = max(a,b)
    res2 = max(res1,c)
    res3 = max(res2,d)
    return res3
print(max4(234,456,123,789))

2.2 函数的嵌套定义

def f1():
    def f2():
        def f3():
            print("from f3")
        f3()
    f2()
f1()
# 返回值 from f3 ,即 f3的值

3. 名称空间

名称空间:存放名字的地方 名称空间分为三种

3.1 内置名称空间

随着python解释器的启动而产生

a = [1,2,3,4,5]
print(max(a))

3.2 全局名称空间

文件的执行会产生全局名称空间,指的是文件级别定义的名字都会放入改空间

x = 1
def fun():
    x = 2
    print(x)
fun()   
print(x)

3.3 局部名称空间

调用函数时会产生局部名称空间,只在函数调用时临时绑定,调用结束解绑定

x = 10000
def func():
    x = 1
    def f1():
        print(x)
        def f2():
            print(x)
        f2()
    f1()
func()

4. 作用域

作用域即范围(作用域关系是在函数定义阶段就已经固定的,与函数的调用位置无关) 查看作用域:globals(),locals()

6. 闭包函数

def f1():
    x = 1
    y = 2
    def f2():
        print(x,y)
    return f2

f = f1()
print(f.__closure__[0])
print(f.__closure__[0].cell_contents)

6. 装饰器

7. 迭代器

8. 生成器

def foo():
    print('一')
    yield  1
    print('二')
    yield 2
    print('三')
    yield 3
    print('四')

g = foo()
# for i in g:
#     print(i)

print(next(g))
print(next(g))
print(next(g))
print(next(g))

9. 内置函数

- - Built-in Functions - -
abs() dict() help() min() stator()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() enav() int() open() str()
bool() exec() isinstance() ord() sun()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() __import__()
complex() hasattr() max() round() -
delattr() hash() memoryview() set() -

你可能感兴趣的:(python,开发语言,numpy)