zoukankan      html  css  js  c++  java
  • python class metaclass instance

    >>> class CObj(object):
    ... pass
    ...
    >>> dir()
    ['CObj', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
    >>> cob = CObj
    >>> dir()
    ['CObj', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'cob']

    >>> help(__name__)
    Help on module __main__:

    NAME
    __main__

    CLASSES
    builtins.object
    CObj

    class CObj(builtins.object)
    | Data descriptors defined here:
    |
    | __dict__
    | dictionary for instance variables (if defined)
    |
    | __weakref__
    | list of weak references to the object (if defined)

    cob = class CObj(builtins.object)
    | Data descriptors defined here:
    |
    | __dict__
    | dictionary for instance variables (if defined)
    |
    | __weakref__
    | list of weak references to the object (if defined)

    FILE
    (built-in)


    >>> cins = cob()
    >>> cins
    <__main__.CObj object at 0x0000000000B5CC88>
    >>> cins2 = CObj()
    >>> cins2
    <__main__.CObj object at 0x00000000013F5E10>
    >>> CObj.x1 = 20
    >>> cins
    <__main__.CObj object at 0x0000000000B5CC88>
    >>> cins.x1
    20
    >>> cins2.x1
    20
    >>> cins2.y1=30
    >>> cins.y1
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    AttributeError: 'CObj' object has no attribute 'y1'
    >>> CObj.y1
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    AttributeError: type object 'CObj' has no attribute 'y1'
    >>> dir(cins)
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__
    gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__
    repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x1']
    >>> dir(cins2)
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__
    gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__
    repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x1', 'y1']
    >>> dir(cob)
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__
    gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__
    repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x1']
    >>> dir(CObj)
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__
    gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__
    repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x1']
    >>>

    >>> hasattr(CObj, x1)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    NameError: name 'x1' is not defined
    >>> hasattr(CObj, 'x1')
    True
    >>> hasattr(CObj, 'y1')
    False
    >>> hasattr(CObj, 'y1')

  • 相关阅读:
    关于使用wcf架构分布式系统的一点想法
    vs2012 远程调试服务器上iis下的程序
    F#定义方法参数
    产生不重复的随机数
    巧在C#中设置多维动态数组,可以动态增加及删除
    C#时间相减
    css控制图片大小的方法
    常用网络命令
    DEDE SQL 常用语句
    未审核文档发布时间的自动更改方法for DEDEcms v5.3(修正版)
  • 原文地址:https://www.cnblogs.com/alexyuyu/p/6247042.html
Copyright © 2011-2022 走看看