Python中的所有对象都有三个特点:
• 身份:每个对象都有一个唯一的身份标识自己,任何对象的身份都可以使用内建函数id()来得到,可以简单的理解为这个值式对象的内存地址
• 类型:对象的类型决定了对象可以保存什么类型的值,有哪些属性和方法,可以进行哪些操作,遵循怎样的规则。可以使用内建函数 type() 来查看对象的类型
• 值:对象所表示的数据
在Python中,函数和类也是对象,属于Python中的 “一等公民”
1.赋值给一个变量
1 def get_name(name='zy'): 2 print(name) 3 4 5 # 定义一个函数之后,将函数赋值给一个变量 6 func = get_name 7 # 通过变量也可以调用函数 8 func()
1 class Person: 2 def __init__(self): 3 print('zy') 4 5 6 # 将类名赋值给一个变量 7 my_class = Person 8 # 通过变量调用类的构造函数 9 my_class()
2.可以添加到集合对象中
1 #!/user/bin/env python 2 # -*- coding:utf-8 -*- 3 obj_list = [] 4 5 6 def get_name(name='zy'): 7 print(name+' in function') 8 9 10 class Person: 11 def __init__(self): 12 print('zy in class') 13 14 15 # 将函数和类赋值给一个变量 16 my_func = get_name 17 my_class = Person 18 19 # 将函数添加到list中 20 obj_list.append(my_func) 21 obj_list.append(my_class) 22 print(obj_list)
3.可以作为参数传递给函数
4.可以当作函数的返回值
1 #!/user/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # 利用一个装饰器来解释这个3, 4 5 6 7 def decorator(func): 8 def wrapper(): 9 print('--decorator--') 10 func() 11 return wrapper() 12 13 14 @decorator 15 def func(): 16 print('hello world')
--decorator-- hello world
简单来说:Python 中的一切都可以赋值给变量或者作为参数传递给函数。