python: __dict__、dir()、locals()、globals()

测试代码:python3运行

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import sys

def p_dict(v):
    print(*['%20s : %s' % (x,v[x]) for x in sorted(v.keys())], sep='\n',end = '\n\n')

def p_arr(a):
    print(*['%20s' % x for x in sorted(a)], sep='\n', end = '\n\n')

p_dict(globals())
p_dict(sys.modules['__main__'].__dict__)

class A:
    def __init__(self):
        self.a = 1
        b = 2
        p_dict(locals())
    
    def func(self):
        pass

a = A()
p_dict(globals())

p_dict(a.__dict__)
p_arr(dir(a))

执行结果:


123.png

图注:

  1. globals()和sys.modules['__main__'].__dict__的输出是一样的
  2. locals()只包含函数参数和本地变量
  3. 在定义A和a以后,globals()发生了相应的变化
  4. 对象的__dict__只包含属性,不包括方法
  5. dir()的输出为list,其他都为字典。其包含了对象所有的属性和方法名称
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.1 Python简介 [if !supportLists]• [endif]Python是一种面向对象、解释型...
    Chliao阅读 3,593评论 0 1
  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 5,057评论 0 0
  • 1. 简单的例子 先从一个简单的例子说起,包含了两个文件 foo.py 和 demo.py 执行这个程序pytho...
    jiangmo阅读 5,713评论 0 5
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,853评论 0 5
  • 今日大盘低开高走,再创新高,收盘上涨9.24点。大家还记得本博上周五盘后的博文<<下周大盘将会迎来中到大阳...
    春风得意8u8e68阅读 1,382评论 0 0

友情链接更多精彩内容