一、__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两个属性赋值,然后再次打印就出现了新的属性值。

Python中的常见特殊方法或属性—— dir方法和dict属性的更多相关文章

  1. (转)Python中的常见特殊方法—— repr方法

    原文链接:https://www.cnblogs.com/tizer/p/11178473.html 在Python中有些方法名.属性名的前后都添加了双下划线,这种方法.属性通常都属于Python的特 ...

  2. Python中的常见特殊方法—— repr方法

    在Python中有些方法名.属性名的前后都添加了双下划线,这种方法.属性通常都属于Python的特殊方法和特殊属性,开发者可以通过重写这些方法或者直接调用这些方法来实现特殊的功能.其实前面见过的构造方 ...

  3. Python中的常见特殊方法—— del方法

    __del__() 方法用于销毁Python对象——在任何Python对象将被系统回收的时候,系统都会自动调用这个方法.但是不要以为对一个变量执行del操作,该变量引用的对象就会被回收,当然不是,如果 ...

  4. 全面了解python中的类,对象,方法,属性

    全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  5. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

  6. Python基础学习-Python中最常见括号()、[]、{}的区别

    Python中最常见括号的区别: 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{}:其作用也不相同,分别用来代表不同的Python基本内置数据类型. Python中的 ...

  7. Python爬虫编程常见问题解决方法

    Python爬虫编程常见问题解决方法: 1.通用的解决方案: [按住Ctrl键不送松],同时用鼠标点击[方法名],查看文档 2.TypeError: POST data should be bytes ...

  8. Python的程序结构[1] -> 方法/Method[1] -> 静态方法、类方法和属性方法

    静态方法.类方法和属性方法 在 Python 中有三种常用的方法装饰器,可以使普通的类实例方法变成带有特殊功能的方法,分别是静态方法.类方法和属性方法. 静态方法 / Static Method 在 ...

  9. python中List的sort方法的用法

    python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法. 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东 ...

随机推荐

  1. HTTP:Web的基础

    一.HTTP:Web的基础 1.URI 每个Web服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是什么了.服务器资源名称被称为统一资源标识符(URI) URI有两种形式,分别为URL和U ...

  2. awk 输出前 N 列的最简单方法

    最近遇到一种场景,需要输出一个文本信息的前 N 列. 众所周知 cut 可以指定分隔符并指定列的范围,如 cut -d' ' -f-4 就是以空格为分隔符输出前 4 列.但是 cut 的分隔符只能是一 ...

  3. 强大的Charles的使用,强大的flutter1.9

    <a href="http://www.cocoachina.com/articles/37551?filter=ios"> 强大的Charles 强大的flutter

  4. 【原创】CentOS 7 安装解压版mysql5.7

    1.将mysql压缩包解压至 /usr/local 文件夹下,将其改名为mysql #解压 tar -zxf mysql-5.7.27-el7-x86_64.tar.gz -C /usr/local/ ...

  5. 2018年最新Java面试题及答案整理

    基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内部的数据.在 Java 当中,有 3 种修饰符: pub ...

  6. Python异常类型及处理、自定义异常类型、断言

    异常的概念.识别报错信息 异常处理 断言的基本使用 异常类型(异常就是报错) 常见异常 NameError:名称错误 SyntaxError:语法错误 TypeError:类型错误 错误回溯 查看报错 ...

  7. 浅谈P/NP问题

    克雷数学研究所(Clay Mathematics Institute,CMI)是在1998年由商人兰顿·克雷(Landon T. Clay)和哈佛大学数学家亚瑟·杰夫(Arthur Jaffe)创立, ...

  8. JMeter面试题

    1.Jmeter怎么录制脚本,怎么过滤,线程组有哪些内容? jmeter可以使用第三方的录制工具(badboy)或者使用jmeter自带的HTTP代理服务器录制脚本功能 jmeter录制原理:通过ht ...

  9. IOI2015 boxes纪念品盒

    BZOJ 4368: [IOI2015]boxes纪念品盒 BZOJ传送门 Description IOI2015开幕式正在进行最后一个环节.按计划在开幕式期间,每个代表队都将收到由主办方发放的一个装 ...

  10. webapi使用ExceptionFilterAttribute过滤器

    文章 public class ApiExceptionFilterAttribute:ExceptionFilterAttribute { public override void OnExcept ...