跟我一起学python-对象

后端 / 笔记 / 2021-09-20

跟我一起学python-对象

什么是对象

在python的世界中,万物皆对象! - -构造的任何类型的值都是一个对象.

python对象

  • 可变对象
  • 不可变对象

可变对象和不可变对象

不可变对象:指该对象所指向的内存中的值不可被改变。由于不可变对象的值不可改变,因此会复制一份新的值,另开辟新的地址。
可变对象:顾名思义就是对象指向内存的值可以不被改变。

  • 不可变对象

    • numbers 数值
    • strings 字符串
    • tuples 元组
  • 可变对象

    • list 列表
    • dictionary 字典
    • sets 集合
a = 10
print(id(a))

a = 11
print(id(a))
4476586576
4476586608

对象三大要素

  • id 标始
  • type 类型
  • val

几种常见的对象

类对象

# 类对象
class Dog():
    pass


实例对象

# 实例对象

petter = Dog()

函数对象

# 函数对象
def say_hello():
    print("hello")

fun1 = say_hello

print("fun_id:"+str(id(fun1)))
print("fun_type:"+str(type(fun1)))

fun_id:4551602528
fun_type:<class 'function'>

可迭代对象

可迭代对象是能够实现 iter()next()方法的对象。迭代对象调用next方法时,会返回下一个值。

# 可迭代对象
from collections import Iterable
# 判断一个对象是否是可迭代对象
print(isinstance("ABCDE", Iterable))
print(isinstance(1, Iterable))
print(isinstance([1, 2, 3], Iterable))
print(isinstance(range(5), Iterable))

True
False
True
True

变量

作用:用来存储对象的
varName = value

a = 3

赋值

对象赋值有很多种方式

简单赋值

顾名思义 直接赋值

a = 10
b = a

链式赋值

连续赋值

a=b=c=1

复合赋值

用到复合运算符 的赋值

a = 10
a +=1
a -=1
a *=1
a /=1
a //=2
a %=1
a **=1

序列解包赋值

序列解包,用于将一个序列或者如何可迭代对象解包.
并将得到的值赋值对应的一系列对象。

a, b = "jk"
print(a, b)
a, b, c = (1, 2, 3)
print(a, b, c)

j k
1 2 3
a, *b = [5, 6, 7, 8, 9]
print(a, b)
5 [6, 7, 8, 9]

变量删除

通过 del 语句可以删除 对象

a = 10
del a