当前位置: 首页 > 后端技术 > Python

【Python核心编程笔记】1.Python中的一切都是对象

时间:2023-03-26 19:21:52 Python

Python中的一切都是对象。本章首先比较了静态语言和动态语言,然后介绍了python中最重要的概念也是面向对象——对象和类型。类与类的关系,以引出python中如何让一切都成为对象,然后列出python中常见的对象。1、Python中一切皆对象Python的面向对象更加彻底,Java和C++中的基本类型都不是对象。在Python中,函数和类也是对象,是Python的一等公民。对象具有以下四个特征:1.给变量赋值;2.可以添加到一个集合对象中;3.可以作为参数传递给函数;4.可以作为函数的返回值。下面的例子从四个特性来说明函数和类也是对象1.1类和函数都可以赋值给一个变量class可以赋值给一个变量classPerson:def__init__(self,name="lsg"):print(name)if__name__=='__main__':my_class=Person#类赋值给A变量my_class()#输出lsg,可以直接调用变量实例化一个类,满足上面的特征1,这里很明显的是classisalsoanobjectmy_class("haha")#输出的haha函数可以赋值给一个变量deffunc_test(name='lsg'):print(name)if__name__=='__main__':my_func=func_testmy_func("haha")#输出哈哈,对变量的操作就是对函数的操作,相当于对象的赋值,满足上面的Feature1说明函数是对象。1.2类和函数都可以添加到集合中classPerson:def__init__(self,name="lsg"):print(name)deffunc_test(name='lsg'):print(name)if__name__=='__main__':obj_list=[func_test,Person]print(obj_list)#Output[,]1.3类和函数都可以作为参数传递给函数类Person:def__init__(self,name="lsg"):print(name)deffunc_test(name='lsg'):print(name)defprint_type(obj):打印(type(obj))if__name__=='__main__':print_type(func_test)print_type(Person)的输出如下可以明显看出类和函数都是对象1.4类和函数都可以作为函数返回值classPerson:def__init__(self,name="lsg"):print(name)deffunc_test(name='lsg'):print(name)defdecorator_func():print("prefunction")returnfunc_testdefdecorator_class():print("preclass")返回Personif__name__=='__main__':decorator_func()()#作为函数返回的右值可以直接调用decorator_class()()#返回的右值可以直接实例化为class2.type、object、class的关系代码如下。可以得出三者的关系是type-->class-->obj2.1type-->int-->aa=1print(type(a))#print(type(int))#2.2type-->str-->bb='abc'print(type(b))#print(type(str))#2.3type-->Student-->stuclassStudent:passstu=Student()print(type(stu))#print(type(Student))#2.4type-->list-->cc=[1,2]print(type(c))#print(type(list))#总结图:3.三个特征Python中常见的内置类型对象:标识、内存和值如下3.1None:世界上只有一个代码如下,两个值为None的变量地址完全相同。可以看出,None是世界上唯一的a=Noneb=Noneprint(id(a))print(id(b))print(id(a)==id(b))3.2值类型intfloatcomplex(complexnumber)bool3.3迭代类型:iterator3.4序列类型listbytes,bytearray,memoryview(二进制序列)rangetuplestrarray3.5映射类型(dict)3.6setsetfrozenset3.7上下文管理类型(with)3.8其他模块类型类和实例函数类型方法类型代码类型对象类型typetypeelipsistypenotimplemented类型