面向对象及类型转换
面向对象
对象:
对象 object python中一切都是对象。
程序运行过程中,所有的数据都是先储存在ram(内存)中,然后再运行。
对象就是内存中专门用来存储指定数据的一块区域(PS:对象就是一个容器,用来存储数据)
对象的结构
每一个对象都有三中数据 如下:
id (标识) 表示唯一性 可通过python的 交互模式 运行函数 id(param) 来查看param存储的内存地址
type (类型) 表示当前对象所属类型 注:id type 确定后将无法再进行修改
value (值) 对象中存储的数据 注:部分值是可以改变的, 可变对象的值是可以改变的 ,不可改变对象的值是不能改变的
变量和对象的关系
如 :a = 1 对象 1 并没有存储在变量 a 中,类似于给对象1 起一个别名 a
变量中存储的不是对象的值,而是变量的id(内存地址),当需要使用对象时,则根据地址去寻找对象。
变量与变量之间时相互独立的,修改其中一个不会影响另一个。
类型转换
类型转换不是改变对象本身,而是根据当前对象的值创建一个新的值
类型转换函数: int() float() str() bool()
a = False
print(a,type(a))
False <class ‘bool’>
int() 函数不会对原来的变量产生影响,是对对象转换为指定的类型并将其作为返回值返回
若需要修改原来的变量,则需要对变量进行重新赋值
a = int(a)
print(a,type(a))
0 <class ‘int’>
浮点型直接转为整型
a = 12.99
print(a,type(a))
a = int(a)
print(a,type(a))
12.99 <class ‘float’>
12 <class ‘int’>
合法的整数字符串直接转为对应的数字
a = '123'
print(a,type(a))
a = int(a)
print(a,type(a))
123 <class ‘str’>
123 <class ‘int’>
不合法的字符串无法转为int型,直接抛出异常
a = 'asd'
print(int(a))
invalid literal for int() with base 10: ‘asd’
None 不能转为int 抛出异常
a = None
print(int(a))
TypeError: int() argument must be a string, a bytes-like object or a number, not ‘NoneType’
float() 与int类似
b = 12
print(b,type(b))
b = float(b)
print(b,type(b))
12 <class ‘int’>
12.0 <class ‘float’>
str() 可以将对象转换为字符串
c = str(False)
print(c,type(c))
c = str(123)
print(c,type(c))
c = str(12.33)
print(c,type(c))
False <class ‘str’>
123 <class ‘str’>
12.33 <class ‘str’>
bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值
注:对于所有表示空的对象都会转为False,其余都是True
d = 10
print(d,type(d))
d = bool(d)
print(d,type(d))
10 <class ‘int’>
True <class ‘bool’>
d = ''
print(d,type(d))
d = bool(d)
print(d,type(d))
<class ‘str’>
False <class ‘bool’>
d = None
print(d,type(d))
d = bool(d)
print(d,type(d))
None <class ‘NoneType’>
False <class ‘bool’>
注:bool(0) ----> False
JavaWeb工作笔记
注:本文仅用于个人学习记录,如有错误之处希望大家多多指正,共同进步。