面向对象编程——函数 __class__

在python的面向对象编程中,__class__是一个特殊的属性,它与类和实例相关,用于表示对象类信息。通过 class,你可以访问一个对象所属的类,或者获取类本身的元类信息。


1. __class__的作用

class 是python中的一个内置属性,用来表示类信息。

1)对于实例对象,__class__属性指向该实例所属的类。

2)对于类对象, __class__属性指向该类的元类(一般是type)。

实例对象:

python 复制代码
class MyClass:
    pass

# 创建实例
obj = MyClass()

# 访问实例的 __class__ 属性
print(obj.__class__)  # 输出:<class '__main__.MyClass'>

在这个例子中,obj 是 MyClass 的一个实例,obj.__class__ 返回 MyClass,表示 obj 是 MyClass 的实例。

类对象:

python 复制代码
class MyClass:
    pass

# 访问类对象的 __class__ 属性
print(MyClass.__class__)  # 输出:<class 'type'>

在这个例子中,MyClass 是一个类对象,它的 __class__ 属性返回 type,表示 MyClass 是由 type 元类创建的。


2.__class__的用法及底层运作

在这里我们创建两个类属性,首先one的变量是指向Money的类的,这里它们可以通过__class__,这个函数将one的指向变为指向Text类。


3.__class__与type()的区别

__class__和type()都可以用来获取对象的类型,但是存在一的区别:

1)class 是对象的一个属性,直接存储了对象的类信息。

2)type() 是一个内置函数,返回对象的类型。而对于普通对象,type(obj)和obj.__class__是等价的。

3)对于某些特殊对象(如元类或自定义元类的情况),type()和__class__的行为可能略有不同。

python 复制代码
class MyClass:
    pass

obj = MyClass()

print(obj.__class__)  # 输出:<class '__main__.MyClass'>
print(type(obj))      # 输出:<class '__main__.MyClass'>

# 对于类对象
print(MyClass.__class__)  # 输出:<class 'type'>
print(type(MyClass))      # 输出:<class 'type'>
相关推荐
happylifetree2 小时前
Python09:核心语法-数据存储与运算-字面量
python
心之语歌3 小时前
Tkinter 画布基本梳理
运维·服务器·python
Wx-bishekaifayuan3 小时前
django个性化旅游路线推荐平台49005-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
小白快快跑哦4 小时前
python-字符串全解(六):正则表达式-量词
python·正则表达式·字符串
禹凕4 小时前
机器学习之Selenium(Machina Learning about Selenium)
爬虫·python·selenium·测试工具·机器学习
ebiobiz6 小时前
基于 GD32 Embedded Builder (GEB) 与 Nimmake 的 MCU 工程搭建指南
c++·python·单片机·嵌入式硬件·mcu
老歌老听老掉牙7 小时前
穿越时空的物流密码:VRP与VRPTW的深度剖析及实战求解
python·物流·vrp
FYKJ_20107 小时前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
ShyanZh7 小时前
【Python3基础】13-Python 常用设计模式
开发语言·python·设计模式
小静AI工程实验室7 小时前
RSA 算法详解:从模幂原理到 OAEP 加密、PSS 签名与 Python 实验
python·算法