Python 是旧样式吗?

Python 是旧样式吗?,python,pygame,python-2.7,new-style-class,Python,Pygame,Python 2.7,New Style Class,读到新闻风格与旧风格属性的区别,我感到困惑。在本例中: 此代码是否使用旧式方法修改属性 在Event()atself.\uu指令更新(kw) 我是否使用getattr、getattr或getattribute 对于Dispatcher.dispatch\u to\u parent() 代码来自 类事件(对象): def uuu init uuuu(self,name,kw={}): self.name=名称 自我记录更新(千瓦) self.dict=dict(千瓦) self.method\u

读到新闻风格与旧风格属性的区别,我感到困惑。在本例中:

  • 此代码是否使用旧式方法修改属性

    Event()
    at
    self.\uu指令更新(kw)

  • 我是否使用getattr、getattrgetattribute

    对于
    Dispatcher.dispatch\u to\u parent()

  • 代码来自
    类事件(对象):
    def uuu init uuuu(self,name,kw={}):
    self.name=名称
    自我记录更新(千瓦)
    self.dict=dict(千瓦)
    self.method\u name='EVT\u%s'%self.name
    定义报告(自我):
    返回“”%(self.name,self.dict)
    类调度程序(对象):
    def添加(自身、其他):
    如果isinstance(其他,调度程序):
    其他。父母=自己
    其他:
    raise VALUERROR(“%s”不是调度程序“%other”)
    def移除(自身、其他):
    如果isinstance(其他,调度程序):
    如果other.parent是self:
    del other.parent
    其他:
    raise VALUERROR(“%s不是我的孩子。”%other)
    其他:
    raise VALUERROR(“%s”不是调度程序“%other”)
    def调度(自身、事件):
    method=getattr(self,event.method\u name,None)
    如果方法不是无:
    返回方法(事件)
    其他:
    自我分派给家长(事件)
    def分派给父级(自身、事件):
    parent=getattr(self,'parent',None)
    如果父项不是无:
    dispatch=getattr(父级“dispatch”,无)
    如果分派不是无:
    退货派送(事件)
    类根(调度程序):
    定义初始化(自):
    调度程序。\uuuuu初始化\uuuuuuuuuuuuu(自)
    self.focused_node=self
    def焦点(自身、节点):
    如果节点是自聚焦的\u节点:返回
    打印“聚焦”,节点
    self.focused_node.dispatch(事件('BLUR'))
    self.focused_node=节点
    node.dispatch(事件('FOCUS'))
    def模糊(自身,节点):
    self.focused_node=self
    node.dispatch(事件('BLUR'))
    def post(自身、事件名称、千瓦):
    事件=事件(事件名称,kw)
    返回自聚焦节点调度(事件)
    如果名称=“\uuuuu main\uuuuuuuu”:
    类按钮(调度程序):
    def EVT_按键关闭(自身、事件):
    回归自我
    #创建根节点,它是所有事件的接收者。
    r=根()
    #创建一个按钮节点
    b=按钮()
    #将按钮节点添加到应用程序
    r、 加(b)
    #给予按钮节点焦点,它现在将接收事件
    r、 焦点(b)
    #发布按键事件,按钮将接收该事件
    打印r.post('KeyDown')
    #发布退出事件,按钮将不会收到该事件。
    #此事件将传递到按钮父级
    打印r.post(“退出”)
    #post方法的返回值是处理事件的节点
    
    您不应该直接更新实例字典,您将绕过自定义设置程序。循环键并执行setattr。

    您不应该直接更新实例字典,您将绕过自定义setter。循环键并进行设置属性。

    def post(self,event\u name,kw)中缺少一个*:

    为了使您的函数能够接收dict作为参数,您需要在变量名称之前添加**:

    def post(self, event_name, **kw):
        event = Event(event_name, kw)
        return self.focused_node.dispatch(event)
    

    def post(self,event\u name,kw)中缺少一个*:

    为了使您的函数能够接收dict作为参数,您需要在变量名称之前添加**:

    def post(self, event_name, **kw):
        event = Event(event_name, kw)
        return self.focused_node.dispatch(event)
    

    这段代码中的所有类都是新样式的类。不过,我不太清楚您在问什么。在旧样式的类中,
    \uu dict\uu
    属性不可用…此代码中的所有类都是新样式的类。不过,我不太清楚您在问什么。在旧式类中,
    \uu dict\uu
    属性不可用。。。