zoukankan      html  css  js  c++  java
  • Python中的常见特殊方法或属性—— dir方法和dict属性

    一、__dir__方法

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

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

    栗子如下:

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

    控制台打印如下:

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

    二、__dict__属性

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

    栗子如下:

     1 #coding=utf-8
     2 class Item():
     3     def __init__(self,name,price):
     4         self.name=name
     5         self.price=price
     6     def info():
     7         pass
     8 #创建一个Item对象,将之赋值给it变量
     9 it = Item('鼠标',29.8)
    10 print(it.__dict__)
    11 print(it.__dict__['name'])
    12 print(it.__dict__['price'])
    13 it.__dict__['name'] = '键盘'
    14 it.__dict__['price'] = 39.9
    15 print(it.name)
    16 print(it.price)

    控制台打印如下:

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

  • 相关阅读:
    利用dns类和WMI规范获取IP及MAC地址
    vs2010编辑器中代码前的虚线问题
    项目发布方法
    HTML5 声明兼容IE的写法 asp.net 狼
    Jquery总结 狼
    IE、FF、Chrome、兼容性文章 狼
    sql游标实现行列转换 狼
    【狼的格言】 狼
    设计模式提升与加强一 狼
    读Head.First设计模式有感 狼
  • 原文地址:https://www.cnblogs.com/tizer/p/11200596.html
Copyright © 2011-2022 走看看