python中一切皆对象
懒狗的第一篇博客,大🔥点击关闭就好,是为了防止忘记写的,
1.python中一切皆对象🐘
python是个动态语言。
python是完全面向对象的,比 “jvav” 彻底,python中一切皆对象。
静态语言(c艹、java)中的object(对象)是class(类)的一个实例。
动态语言(python)中class也是一个object,函数也是一个object(可以在函数里定义函数),代码、模块也是object。所有都可以动态修改,类(class)的属性可以动态修改。
函数和类是python中的一等公民,可以:
1.赋值给一个变量
2.可以添加到集合对象中(列表、元组、)
3.可以作为参数传递给函数(例:传递:<_main_.xxxx object at xxxx>)
4.可以当作函数的返回值(函数装饰器原理
例:
def _shit():
print('shit')
def decorator_func():
print('im such a f**king ')
return _shit
my_type = decorator_func()
my_type()
# 输出
im such a f**king
shit
Process finished with exit code 0
#
decorator_func()# 不赋给对象不执行返回值的内容
# 输出
im such a f**king
)
2.type、object与class🍕
>>> a=1
>>> type(a)
<class 'int'>
>>> type(int)
<class 'type'>
>>>
type类可以生成int类,int类可以生成1
type生成class,class生成具体object
class(类)是由type这个类生成的一个对象
>>> class shit:
pass
>>> type(shit)
<class 'type'>
>>> shit.__bases__
(<class 'object'>,)
>>>
shit没有继承任何父类,我们去查看其基类时发现其默认继承了object类
所有类的基类都会默认继承object类
object类是最顶层基类——“一切皆对象”
当然,type也是一个类,type也默认继承了object类
>>> type.__bases__
(<class 'object'>,)
>>>
那object也是一个类,object又是由谁(哪种类型(type))来生成的呢?
>>> object.__bases__
()
>>> type(object)
<class 'type'>
>>>
可以发现,object类并没有继承任何东西,而是一个由type类生成的类
有个好图
>>> type(type)
<class 'type'>
>>>
如上,type创建了基本所有对象,基本所有对象都是type的实例,type自己是自己的实例(自己指向自己),自己是自己的对象。
所以如同list等都是type的实例,所以它既是一个类,也是一个对象(一个实例),可以动态修改。
python中一切皆对象。
3.python中内置类型🐷
☀python中的对象(object)都有特征:
1.id(地址)
>>> a=1
>>> id(a)
140719020407872
>>>
2.类型
3.值
☀python中的None类型在解释器启动时会生成一个None对象,全局只有一个
>>> a=None
>>> b=None
>>> id(a)==id(b)
True
>>>
☀python的数值类型:int、float、complex、bool
☀迭代类型
☀序列类型
list、bytes、bytearray、memoryview、range、tuple、str、array
☀映射(dict)
☀集合
set、frozenset
☀上下文管理类型
with语句
☀其他
模块类型、class和实例、
函数类型、方法类型、(方法是class内定义的函数)
代码类型(会被python解释器变成一个对象类型)、
object对象、
type类型、
ellipsis类型(省略号类型)、
notimplemented类型
就到这里了;大🔥看个笑话就好
下一篇的链接:菜鸟初学python入门进阶第二节:面向对象,python中的魔法函数
U•ェ•*U-U•ェ•*U-U•ェ•*U-U•ェ•*U-U•ェ•*U-U•ェ•*U-U•ェ•*UU•ェ•*U-U•ェ•*U-U•ェ•*U-U•ェ•*U-U•ェ•*U-U•ェ•*U-