python中一切皆对象
在python中一切都是对象
面向对象更彻底 class,def(函数)都可以看作是对象。
python中函数和类都是对象,是python的一等公民。
1.在python中函数和类都可以赋值给一个变量。
python
def talk(name='body'):
print(name)
fun = talk('se10rc')
输出:se10rc
-----------------------
class preson:
def __init__(self):
print("se10rc")
my_class = person()
my_class()
输出:se10rc
2.可以添加到集合中,进行遍历。
输出None因为第一个函数没有定义返回值,python会默认返回None,第二个返回的是类对象。
3.可以当作函数的返回值。
(装饰器)
type、objetc和class之间的关系
了解三者的关系,更深入了解python类和对象。
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a=1
>>> type(a)
<class 'int'>
>>> type(int)
<class 'type'>
tpye->int->1
常见内置类都是由type类创建的对象。
类由type这个类创建的对象,而type又是由objetc类创建的对象。
.bases(查看某个类的基类)
class studen:
pass
class my_Studen(studen):
pass
print(my_Studen.__bases__)
(<class '__main__.studen'>,)
三者关系如下图:
1.大多数的内置类(list,str,int,dict)全部继承objetc,全是type的实例。
2.objetc是type的实例,而type又继承自objetc.(objetc是所有类的基类)
3.type又是自己的一个实例。(对象)
python中常见内置类型。
对象的三个特征
1.身份:对象在内存中的地址(通过id函数查看其地址)
>>> a =1
>>> id(a)
4480146608
2.类型
3.值(例如a=1 ,1就是a的值)
python中对象内置类型
1.None:在python解释器开始运行会生成一个None对象(全局只有一个)
>>> a=None
>>> b=None
>>> a==b
True
2.数值类型:int、float、complex(复数)、bool
3.迭代类型
4.序列类型:list、bytes、bytearray、memoryview(二进制序列)、range、tuple、str(字符串可看成一个数组)、array。
5.映射类型(dict)有键和值。
6.集合类型:set、frozenset
7.上下文管理类型(with语句)
8.其他类型:模块类型、class和实例、函数类型、方法类型、代码类型、object对象、type类型、ellipsis类型、notimplemented类型。
总结
文笔轻浮,如有错误,恳请各位师傅斧正。