一、__dir__方法

对象的__dir__()方法的作用是列出对象内部所有的属性名和方法名,该方法将会返回包含所有属性或方法名的序列。

如果程序对某个对象执行dir(obj)函数,实际上就是将该对象的__dir__()方法返回值进行排序,然后包装成列表。

栗子如下:

 #coding=utf-8
class Item():
def __init__(self,name,price):
self.name=name
self.price=price
def info():
pass
#创建一个Item对象,将之赋值给it变量
it = Item('鼠标',29.8)
#打印所有属性(包含方法)组成的列表
print(it.__dir__())
#打印所有属性(包含方法)组成的列表,已排序
print(dir(it))

控制台打印如下:

解释:可以看到程序不仅会输出我们定义的name、price、info三个属性和方法,而且还有大量的系统内置的属性和方法,比如前两篇所说到的__repr__和__del__方法。

二、__dict__属性

__dict__属性用于查看对象内部存储的所有属性名和属性值组成的字典,通常程序直接使用该属性即可。程序使用__dict__属性既可查看对象的所有内部状态,也可以通过字典语法来访问或修改指定属性的值。

栗子如下:

 #coding=utf-8
class Item():
def __init__(self,name,price):
self.name=name
self.price=price
def info():
pass
#创建一个Item对象,将之赋值给it变量
it = Item('鼠标',29.8)
print(it.__dict__)
print(it.__dict__['name'])
print(it.__dict__['price'])
it.__dict__['name'] = '键盘'
it.__dict__['price'] = 39.9
print(it.name)
print(it.price)

控制台打印如下:

解释:代码第10行直接输出对象的__dict__属性,这样将会直接输出该对象内部存储的所有属性名和属性值组成的dict对象;接下来的两行单独打印了这两个属性值;第13、14行通过对__dict__属性对name和price两个属性赋值,然后再次打印就出现了新的属性值。

最新文章

  1. DevExpress 为TextEdit设置水印文字
  2. IT励志与指导文章合集(链接)
  3. 疯狂java学习笔记之面向对象(八) - static和final
  4. 夺命雷公狗-----React---7--组建的状态props和state
  5. mssql的日期函数,如何取得当前年月日,当前时间,当前月份,当前天数,一年中第几天?
  6. 连接SQLServer2005失败--[Microsoft][ODBC SQL Server Driver][DBNETLIB]一般性网络错误。请检查网络文档
  7. IOS 中得runloop 详细解释
  8. table不能遗露了tbody
  9. linux下ip命令用法
  10. 数组名取地址所算数运算应注意的"trap"
  11. 树状数组-HDU1541-Stars一维树状数组 POJ1195-Mobile phones-二维树状数组
  12. js内置函数大全及基本使用方法(一)
  13. Bootstrap3 栅格系统-列偏移
  14. Collections模块下的Counter
  15. 【TensorFlow篇】--反向传播
  16. 定时 清理 elasticsearch 6.5.4 的 索引 文件
  17. python风格的抽象工厂模式
  18. PHP抽象方法、抽象类以及接口
  19. codevs 2804 最大最小数质因数
  20. 【TP3.2】TP3.2的 FIND_IN_SET()的用法

热门文章

  1. Java正则表达式详细解析
  2. 基于token机制鉴权架构
  3. SAP系统玩阴的?
  4. 软工个人项目(Java实现)
  5. emacs semantic,speedbar,gdb汇总
  6. 安装npm install app-inspector -g 提示错误
  7. C++:map用法及元素的默认值
  8. 卷积层输出feature maps尺寸的计算
  9. luoguP3979 遥远的国度
  10. DRF视图功能介绍(2)