‘’‘类对象中特殊的属性’’’

class A:pass
class B:pass
class C(A,B):def __init__(self,name,age):self.name=nameself.age=age
class D(A):passx=C('张三',20)
print(x.__dict__ )#实例对象的属性字典
print(C.__dict__ )#类对象的属性和方法的字典
print(x.__class__ )#输出实例对象所属的类
print(C.__bases__ )#输出子类对象的所有父类
print(C.__base__ )#输出子类绑定的多个父类中第一个父类
print(C.__mro__ )#查看类的层次结构
print(A.__subclasses__() )#查看类对象的子类列表

‘’‘类对象中特殊的方法’’’

class Student:def __init__(self,name):self.name=namedef __len__(self):#通过重写__len__()方法,可使内置函数len()的参数可以是自定义类型return len(self.name)def __add__(self, other):#通过重写__add__方法可使自定义对象具有’+‘功能return self.name+other.name
stu1=Student('张三')
stu2=Student('李四')
stu3=stu1+stu2
print(stu3)#输出:张三李四stu4=stu1.__add__(stu2)
print(stu4)#输出:张三李四print(len(stu3))#输出:4(stu3的字符串的长度)print('-------------------------------------')class Person:def __new__(cls, *args, **kwargs):#接收p1的传输,输出的cls的id值与Person的id值相等print('__new__被调用执行了,cls的id值为:{0}'.format(id(cls)))#cls的id值:2146785008560obj=super().__new__(cls)#将接收了Person的cls属性进行了,创建了对象obj,得到了新的idprint('创建的对象(obj)的值为:{0}'.format(id(obj)))#obj的id值:2146791471760return obj#return返回了obj的id给self,所以self的id值与obj的id值相同def __init__(self,name,age):print('__init__被调用了,self的id值为:{0}'.format(id(self)))#self的id值:2146791471760self.name=nameself.age=age#执行完__init__初始化方法之后将self的值传给了p1,所以p1的id值与self的id值相同print('object的id值为:{0}'.format(id(object)))#object的id值:140728660494752
print('Person的id值为:{0}'.format(id(Person)))#Person的id值:2146785008560#创建Person的实例对象
p1=Person('张三',20)#先执行等号后的赋值操作,先将Person传输给函数(cls)
print('创建的实例对象(p1)的id值为:{0}'.format(id(p1)))#p1的id值:2146791471760#输出顺序:
'''object的id值为:140728660494752
Person的id值为:2146785008560
__new__被调用执行了,cls的id值为:2146785008560
创建的对象(obj)的值为:2146791471760
__init__被调用了,self的id值为:2146791471760
创建的实例对象(p1)的id值为:2146791471760'''

类,__dift__,__len__,__add__,__new__,__init__相关推荐

  1. __new__ __init__区别

    1 class A(object): 2 def __init__(self,*args, **kwargs): 3 print "init A" 4 def __new__(cl ...

  2. python基本定制之__new__, __init__

    1,官方文档摘要 object.``__new__(cls[, ...]) 调用以创建一个 cls 类的新实例.__new__() 是一个静态方法 (因为是特例所以你不需要显式地声明),它会将所请求实 ...

  3. python魔法方法__new__(),__init__()

    Python 2的早期,确实是没有__new__函数的,但那是很多年前的事情了,现在的Python 2和Python 3中,类实例的创建过程均遵循先调用__new__函数构造类实例,然后调用__ini ...

  4. Python入门--特殊属性,特殊方法__new__,__init__

    # 特殊方法和特殊属性 # 特殊属性 --> __dict__ --> 获得类对象或实例对象所绑定的所有属性和方法的字典 # 特殊方法 # 1.__len__() --> 通过重写_ ...

  5. 【python】详解类class的继承、__init__初始化、super方法

    原文链接; https://blog.csdn.net/brucewong0516/article/details/79121179?utm_medium=distribute.pc_relevant ...

  6. python类定义中__init__()_转:python学习——类中为什么要定义__init__()方法

    学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类 定义一个矩形的类,目的是求周长和面积. 1 classRectangl ...

  7. Python面向对象——面向对象介绍、实现面向对象编程、定义类、再调用类产生对象、总结__init__方法、查找顺序

    文章目录 面向对象介绍 实现面向对象编程 一:先定义类 二:再调用类产生对象 总结__init__方法 查找顺序 面向对象介绍 ''' 面向过程:核心是"过程"二字过程的终极奥义就 ...

  8. python3对象初始化_Python 面向对象概念 类和对象 对象初始化__init__ 绑定与非绑定...

    面向对象 (Object Oriented Programming,简称OOP) 1.什么是面向对象:面向对象编程是一种思想,它指导程序员如何编写出更好的程序.它的核心是对象,此时程序员从操作者变成了 ...

  9. OpenERP与Python 元编程

    Python元编程被称为"黑魔法".Python界的传奇人物Tim Peters有云: 引用 Python的元编程这种黑魔法99%的人都无需了解,如果你拿不准是否应该用到它时,你不 ...

最新文章

  1. Eclipse下Tomcat服务器配置和使用
  2. 排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现
  3. 【链接攻击,差分攻击,去标识化代码实现】差分隐私代码实现系列(二)
  4. Bailian3177 判决素数个数【入门】(POJ NOI0113-10)
  5. 15. Provide access to raw resources in resouce-managing classes
  6. GPT分区表出现问题后的数据恢复思路
  7. Linux系统p4vasp使用教程,[分享]一个详细的p4vasp安装指南 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  8. 不能错过的linux驱动开发的经典书籍推荐
  9. 笔记本装机软件+网站大合集+磁盘管理
  10. 4、web(js):js 操作table: insertRow(),deleteRow(),insertCell(),deleteCell()方法
  11. 【工业视觉-CCD相机和CMOS相机成像的本质区别】
  12. js和java导出txt文件怎么打开文件_JS本地文件操作,JS读写txt文件
  13. lammps案例:fix indent命令实现纳米摩擦及摩擦力计算
  14. 基于SSH的框架的银行业务管理系统
  15. 高性能ARM SOC 核心板标准(SMARC2.1)简介
  16. python自带的框架是什么_Python Django框架是什么?Python学习入门!
  17. 矩阵分解及其代码实现
  18. zsh报错 Insecure completion-dependent directories detected
  19. 如何修改财务软件服务器地址,财务软件服务器地址是什么
  20. cocoscreator 中 spine局部换皮

热门文章

  1. Spring--Spring配置
  2. 学习Node.js笔记
  3. NeurIPS'22杰出论文奖:3项研究出自华人团队,AlexNet获时间检验奖
  4. tabindex,role属性
  5. Linux:快速查看IP地址及修改IP地址
  6. 软件测试面试前必备题库(必备理论基础复习)
  7. Vue-element tab选项卡二级页面返回缓存选中页签
  8. 长安汽车流程体系成熟度评估模型的应用
  9. wpa_supplicant 常用操作
  10. mysql查询出现毫秒值快速解决方法