zoukankan      html  css  js  c++  java
  • python __dict__

    test_@.py

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

    def args(*args, **kwargs):
    def _decorator(func):
    print "befor ", func.__dict__
    func.__dict__.setdefault('options', []).insert(0, (args, kwargs))
    print 'end ', func.__dict__
    return func
    return _decorator


    @args('-p', '--pp', type='int')
    @args('-e', '--ee', type='int')
    def set(pp, ee):
    print '---------', pp, ee

    def test():
    set(11, 22)
    print " dir(set) ------"
    print dir(set)
    print " set.__dict__ -------"
    print set.__dict__
    print " getattr(set, 'options') --------"
    print getattr(set, 'options')

    if __name__ == "__main__":
    test()

    执行结果

    befor {}
    end {'options': [(('-e', '--ee'), {'type': 'int'})]}
    befor {'options': [(('-e', '--ee'), {'type': 'int'})]}
    end {'options': [(('-p', '--pp'), {'type': 'int'}), (('-e', '--ee'), {'type': 'int'})]}
    --------- 11 22

    dir(set) ------
    ['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name', 'options']

    set.__dict__ -------
    {'options': [(('-p', '--pp'), {'type': 'int'}), (('-e', '--ee'), {'type': 'int'})]}

    getattr(set, 'options') --------
    [(('-p', '--pp'), {'type': 'int'}), (('-e', '--ee'), {'type': 'int'})]

    dict.py

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

    class Person:
    def __init__(self,_obj):
    self.__dict__.update(_obj)


    if __name__ == "__main__":
    person = Person({'name':"n", "age":'3'})
    print person.name
    print person.age
    print person.__dict__
    print Person.__dict__

    执行结果

    n
    3
    {'age': '3', 'name': 'n'}
    {'__module__': '__main__', '__doc__': None, '__init__': <function __init__ at 0x7f606e65cb90>}

  • 相关阅读:
    聊聊.net程序设计
    使用ftp自动下载上传文件
    Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(异步上传,下载等)实现汇总2
    一个的FTP类
    网站需要提高安全性
    极速理解设计模式系列【目录索引】
    NPOI 1.2教程
    Agile Tour 2011北京站“让敏捷落地”
    Asp.net程序中用NPOI生成标准Excel报表,导入导出一应俱全[转]
    网站性能优化之HTTP请求过程
  • 原文地址:https://www.cnblogs.com/banwhui/p/4877731.html
Copyright © 2011-2022 走看看