亲宝软件园·资讯

展开

python内建类型

芒果在努力​​​​​​​ 人气:0

前言

全可以访问相同的对象, 因此我们讲 这种变量名也叫对象的 "引用".

验证1:

a = 2
b = 3
print(id(a),id(b))  #140734889681584 140734889681616
b = 2
print(id(b))    #140734889681584

验证2:

b = 3
print(id(b))    #140734889681616
b +=1
print(id(b))    #140734889681648

相加其实是创建一个新的对象,然后把这个标签b移到这个新的对象上

思考: 为什么Python的变量是这样的? 和C/C++差异这么大捏?

Python的GC机制, 是这样的设定的基础.

理解对象和类型

关于不可变类型和可变类型

s = "hehe"
s[0] = 'a'; #error 报错 TypeError: 'str' object does not support item assignment

s = 'a'+s[1:]   #只能重新创建
print(s)    #aehe
#原来的hehe对象已经销毁,s贴在了aehe这个对象的身上

列表和字典都是可变对象:

关于动态静态强弱类型

类似的, C语言是一种静态弱类型语言. Java的类型检查更为严格, 一般认为是静态强类型, 而Javascript则是动态弱类型

如:

int a = 10; long b = 20; a = b ->C++可以 java不可

int a = 10; bool b = false; a = b ->C++可以,把false当成0 java不可

动态类型:小规模下更好,使用灵活

大规模常用静态类型,否则多人协作容易有歧义

但是类型:越强越好

标准类型

注意:如果想要比较两个浮点数是否相同,不能直接比较,因为会有精度损失,要做差比较

其它内建类型

类型的类型

前面我们说, 类型也是对象

print(type(type(100)))  #<class 'type'>  
print(id(type(100)))    #140734889206240

None ->空类型

Python有一个特殊的类型, 称为NoneType. 这个类型只有一个对象, 叫做None

print(type(None))   #<class 'NoneType'>
def func():
    print("haha")
ret = func()    #打印haha     函数没有返回值却接收了,就是None
print(ret)  #打印None,

内建类型的布尔值

所有的标准对象, 均可以用于布尔测试(放到if条件中).

下列对象的布尔值是False:

if "":
    print("True")
else:
    print("False")
#打印:False

其他情况下, 这些内建对象的布尔值就是True.

加载全部内容

相关教程
猜你喜欢
用户评论