Python深入理解① 一切皆对象(学习笔记)

静态语言与动态语言

静态语言:代码在编译的时候变量数据类型确定的,大部分静态语言在编写的过程中就要定义好数据类型
动态语言:代码是运行的时候变量数据类型确定的,变量可直接赋值而不用定义类型

静态语言优势:可以很容易看出,静态语言由于数据类型是定死的,使得它的优势变现为IDE更容易发现错误,对接第三方包的时候也更容易知道获取数据的类型,不容易被不知道的情况下被赋值不同数据类型的数据,从而减少了一定侵害性
动态语言优势:能够减少定义代码变量数据类型定义、更具有灵活性,可以把更多的精力花在业务逻辑上。

函数和类也是对象

具有以下几个特性

  1. 可以直接赋值给一个变量
  2. 可以添加到集合对象中
  3. 可以作为参数传递给函数
  4. 可以当做函数的返回值

注:()代表函数运行

Type、Object、Class的关系

a=1                          
b="abc"                      
print(type(1))              # <class 'int'>
print(type(int))            # <class 'type'>
print(type(b))              # <class 'str'>
print(type(str))            # <class 'type'>
print(type(object))         # <class 'type'>
print(type(type))           # <class 'type'>
print(type.__bases__)       # (<class 'object'>,)
print(object.__bases__)     # ()
print(int.__bases__)        # (<class 'object'>,)
print(str.__bases__)        # (<class 'object'>,)

由上面的输出结果我们可以明显看出 type->int->1, type->str->“abc”,即type->class->object,而type也是属于type,type的基类是object,object基类是空集,int,str的基类也是object,因此可以用一张图来表示。
在这里插入图片描述
Type把Type也能够自己实例化,所以Python把一切都变成了对象,全部都继承object这个基类。

Python中常见的内置变量

None: None对象全局只有一个

a = None
b = None
print(id(a) == id(b)) # True

数值类型:int、float、complex(复数)、bool
迭代类型:可以进行迭代、for循环
序列类型:list、bytes、array、tuple、str、array
映射类型:dict
集合类型:set、frozenset(不可修改set)
上下文管理类型:with
其他类型:模块类型、函数类型、方法类型、class和实例、代码类型、Object类型等等

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值