Hades123

函数对象

python中有一句话,万物皆对象,之前讲的int、float都是对象,函数也是对象,他们都是一个类(class)

x = 2
y = 1.4
string = \'hades\'
def func():
    pass

print(type(x))
print(type(y))
print(type(string))
print(type(func))
<class \'int\'>
<class \'float\'>
<class \'str\'>
<class \'function\'>

函数的四大功能

引用

def f1():
    return 4

f = f1
print(f())
4

当作参数传给一个函数

def f1():
    print(\'from f1\')

def f2(func):
    func()

f2(f1)
from f1

当作函数的返回值

def f1():
    print(\'from f1\')

def f2():
    return f1

f = f2()
f()

from f1

作为容器函数的元素

def f1():
    print(\'from f1\')

func_list = [f1]
func_list[0]()
from f1

函数的嵌套

函数嵌套的定义

函数内部定义的函数,无法在函数外部使用

def f2():
    def f1():
        print(\'from f2\')
    f1()

f1()    # NameError: name \'f1\' is not defined

现在有一个需求,需要在一个函数里实现求圆的周长和面积,可以自主选择功能

from math import pi

def circle(radius,action=\'area\'):
    
    def area():
        return pi*radius**2
    
    def perimeter():
        return 2*pi*radius
    
    if action != \'area\':
        return perimeter()
    
    return area()


s = circle(10,\'area\')

c = circle(10,\'perimeter\')
print(s,c)
314.1592653589793 62.83185307179586

分类:

技术点:

相关文章:

  • 2021-11-30
  • 2021-11-30
  • 2021-11-30
  • 2021-08-25
  • 2021-08-30
  • 2021-06-17
  • 2021-12-08
  • 2021-07-12
猜你喜欢
  • 2021-08-30
  • 2021-08-30
  • 2021-11-30
  • 2021-11-30
  • 2021-08-30
  • 2021-08-30
  • 2021-08-30
相关资源
相似解决方案