Python__33--对象的特殊属性与特殊方法

简介: 对象的特殊属性与特殊方法

1 特殊属性

1.1 dict

classA:
passclassB:
passclassC(A,B):
def__init__(self,name,age):
self.name=nameself.age=agex=C('Jack',20)
print(x.__dict__)       #输出实例对象的属性字典print(C.__dict__)       #输出类的方法和属性字典

1.2 class

print(x.__class__)      #输出对象所属的类

1.3 bases

print(C.__bases__)       #输出所有父类类型的元组

1.4 base

print(C.__base__)       #只查看从左到右继承的第一个子类

1.5 mro

print(C.__mro__)      #类的层次结构元素

1.6 subclasses

print(A.__subclasses__)      #子类的列表


2 特殊方法

2.1 add

__add__方法是python的内置方法之一, 是一个一元函数。作用相当于求和运算

通过重写__add__方法,可使自定义对象具有“+”功能

classStudent:
def__init__(self,name):
self.name=namedef__add__(self,other):
returnself.name+other.namestu1=Student('张三')
stu2=Student('李四')
s=stu1+stu2print(s)
s=stu1.__add__(stu2)
print(s)


2.2 len

len()的作用是返回容器中元素的个数,要想使len()函数成功执行,必须要在类中定义__len__()。

classStudent:
def__init__(self,name):
self.name=namedef__len__(self):
returnlen(self.name)
stu1=Student('张三')
print(len(stu1))
print(lst.__len__())


2.3 init

在Python中定义类经常会用到__init__函数(方法),首先需要理解的是,两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问。而__init__函数(方法)支持带参数类的初始化,也可为声明该类的属性(类中的变量)。__init__函数(方法)的第一个参数必须为self,后续参数为自己定义。

3 类

3.1 赋值

幅值只是形成两个变量,实际上还是指向同一个对象

网络异常,图片无法展示
|

3.2 浅拷贝

理解一:浅拷贝只拷贝主对象,两个主对象地址,源对象与拷贝对象会引用同一个子对象,既指向同一个实例对象。

理解二:浅拷贝指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用。

网络异常,图片无法展示
|

3.3 深拷贝

理解一:深拷贝主对象和实例对象都会拷贝,新地址。

理解二:深拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任何关联。

网络异常,图片无法展示
|


相关文章
|
1月前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
WK
|
27天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
70 36
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
67 2
11种经典时间序列预测方法:理论、Python实现与应用
|
1月前
|
开发者 Python
Python中的魔法方法与运算符重载
在Python的奇妙世界里,魔法方法(Magic Methods)和运算符重载(Operator Overloading)是两个强大的特性,它们允许开发者以更自然、更直观的方式操作对象。本文将深入探讨这些概念,并通过实例展示如何利用它们来增强代码的可读性和表达力。
|
1月前
|
Linux Python
Python获得本机本地ip地址的方法
【10月更文挑战第8天】 socket模块包含了丰富的函数和方法,可以获取主机的ip地址,例如gethostbyname方法可以根据主机名获取ip地址,gethostbyname_ex方法可以获得本机所有ip地址列表,也可以使用netifaces模块获取网卡信息。
42 0
|
1月前
|
SQL 安全 数据库
Python防止SQL注入攻击的方法
Python防止SQL注入攻击的方法
65 0
|
1月前
|
Python
Python中tqdm模块的常用方法和示例
`tqdm` 是一个快速、可扩展的Python进度条库,适用于长循环中添加进度提示。通过封装迭代器 `tqdm(iterator)`,可以轻松实现进度显示。支持自定义描述、宽度及嵌套进度条,适用于多种迭代对象。在Jupyter notebook中,可自动调整显示效果。
39 0
|
6月前
|
开发者 Python
Python对象和类
Python对象和类
27 0
|
Python 容器
【Python零基础入门篇 · 20】:可迭代对象和迭代器的转换、自定义迭代器类、异常类、生成器
【Python零基础入门篇 · 20】:可迭代对象和迭代器的转换、自定义迭代器类、异常类、生成器
143 0
【Python零基础入门篇 · 20】:可迭代对象和迭代器的转换、自定义迭代器类、异常类、生成器
|
索引 Python
Python的对象与类
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。首先需要明确,面向对象编程不是python独有的;面向对象是一种编程思想;在面向对象的思想中万物都是对象。
128 0
Python的对象与类
下一篇
无影云桌面