python修改父类属性_Python super和设置父类属性
我對Python super()以及繼承和屬性有一個非常奇怪的問題。首先,代碼:#!/usr/bin/env python3
import pyglet
import pygame
class Sprite(pyglet.sprite.Sprite):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.rect = pygame.Rect(0, 0, self.width, self.height)
self.rect.center = self.x, self.y
@property
def x(self):
return super().x
@x.setter
def x(self, value):
super(Sprite, self.__class__).x.fset(self, value)
self.rect.centerx = value
@property
def y(self):
return super().y
@y.setter
def y(self, value):
super(Sprite, self.__class__).y.fset(self, value)
self.rect.centery = value
這很管用。然而,我想要什么(對我來說像Python一樣)#super(Sprite, self.__class__).x.fset(self, value)
super().x = value
即使不起作用super().x
獲取值fine。在本例中,x是同時定義了fset和fget的超類的屬性。為什么不起作用?
總結
以上是生活随笔為你收集整理的python修改父类属性_Python super和设置父类属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql的query cache_My
- 下一篇: python单目运算_Python --