python中一切皆对象
动态语言和静态语言:1.python中面对对象更彻底,
在python
中class
,魔法函数,包括代码和模块都可以是对象,让动态语言的特性得到充分的体现
2.函数和类也是对象,属于一等公民:
- 赋值给一个变量
- 可以添加到集合对象中
- 可以作为参数传递给参数
- 可以当做函数的返回值
def ask(name="bobby")
print(name)
class Person:
def__init__(self):
print("bobby")
def print_type(item):
print(type(item))
def decorator_func():
print ("dec start")
return ask()
my_ask=decorator_func()
my_ask("tom")
obj_list = []
obj_list.append(ask)
obj_list.append(Person)
for item in obj_list:
print(item
# my_func = ask
# my_func("bobby")
# my_class=Person
# my_class()
# 说明函数和类都是对象,直接赋值给变量
type,object和class之间的关系
a=1
b='abc'
print(type(1))
print(type(int))
print(type(b))
print(type(str))
#type->int->1
# type->class->obj
#object是最顶层基类
#type是一个类,同时type也是一个对象
关系:
python中内置类型
对象的三个特征:身份证,类型, 值
None(全局只有一个)
数值:int,float,complex,bool
迭代类型
序列类型:list,bytes,bytearry,memoryview(二进制序列),range,tuple,str,array
映射
集合:set,forzenset,
上下文管理类型(with)
其他:模块类型,class和实例,函数类型,方法类型,代码类型,object对象,type类型,ellipsis类型,notimplemented类型