Python-一切皆对象
标签:管理abcrosmilhttp自身styleictfunc
Python动态、灵活根本是什么?
Python中一切皆对象,面向对象更加彻底,函数、类也是对象,属于一等公民
一等公民特性
1.可以赋值给一个变量
def name(name=\”北门吹雪\”):
print(name)
new_name = name
new_name()
2.可以添加到集合对象中
def name(name=\”北门吹雪\”):
print(name)
def blog(blog=\”http://www.cnblogs.com/2bjiujiu/\”):
print(blog)
funcs = list()
funcs.append(name)
funcs.append(blog)
for func in funcs:
func()
3.可以作为参数传递给函数
def ask_name(name):
name()
def name(name=\”beimenchuixue\”):
print(name)
ask_name(name)
4.可以当作函数返回值,装饰器实现原理
def ask_name(name):
return name
def name(name=\”beimenchuixue\”):
print(name)
hai = ask_name(name)
hai()
type object class之间的关系
从继承角度来说,class(list str dict tuple …)继承 object, type也继承 object
# 继承关系
# str 类型继承 object类
print(str.__bases__)
# type 类型进程 object类
print(type.__bases__)
# object类继承 ()
print(object.__bases__)
从实例角度来说,\”abc\”是 str类型的实例, str又是type类型的实例, object是 type的实例, type是type自身的实例
name = \”beimenchuixue\”
# object class type 实例关系
# name 是 str 实例
print(type(name))
# str 是 type实例
print(type(str))
# object是type实例
print(type(object))
# type是自己的实例
print(type(type))
type > class > object
object是由class类型构建, class由type类型构建
object类是顶层基类,所有类的基类,type也要继承这个类
type是一个类,同时也是对象,继承 object类,把自己变成自己的对象,从而实现Python中一切皆对象
获取变量由什么类型构建的 type()
获取类型的基类 __bases__
object基类是 ()
class的基类是 object
type的基类是 object