Python一切皆对象

本文探讨了Python编程中的核心概念——一切皆对象,解释了函数作为对象的特性,展示了如何通过`isinstance()`检查对象类型。同时,阐述了`type`、`object`、`class`之间的关系,以及不可变和可变对象的区别。此外,还涉及到了对象的身份与内存管理,强调了不可变对象如整数、字符串和元组在内存中不可改变的特性,而列表、字典和集合等可变对象则可在原地修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一切皆对象

# 一切皆对象
def fun_test(name="haha"):
    print(name)
#函数赋给变量是并实列化
my_name=fun_test
print(isinstance(my_name,object))
my_name("Xiaohao")

在这里插入图片描述

从结果可以看出,函数也是对象
其他类型一样,不在赘述....

type,object,class之间的关系

type——>int——>1 (type——>class——>obj):

a=1
b="abc"
print(type(1))
print(type(int))
print(type(b))
print(type(str))

class Student:
    pass

stu = Student()
print(type(stu))
print(type(Student))
print(int.__bases__)
print(str.__bases__)
print(Student.__bases__)
print(type.__bases__)
print(object.__bases__)
print(type(object))

在这里插入图片描述

关系图表

在这里插入图片描述

对象身份

  • 不可变对象: 不可变对象是指对象的内存值不能被改变。Python中变量以引用的方式指向对象,如果变量引用了不可变对象,当改变该变量时,由于其所指的对象的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址,即变量引用了新的对象。数值类型(整数和浮点)、字符串str、元组tuple都是不可变类型。比如a=1,b=[1],c={‘a’:1},id(a)、id(b[0])、id(1)、id(c[‘a’])将输出一样的值,因为1是不可变对象,其在内存中是不可改变的
  • 可变对象是指对象的内存值可以被改变,变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的内存地址,通俗点说就是原地改变。列表list、字典dict、集合set是可变类型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值