在 Python 中访问父 class 的一行中定义一个方法
Define a method in one line accesing parent class in Python
我可以这样调用 Spyder.paws
或 Fish.fins
吗?我已经看到 this post 他们只是通过 定义一个函数 来做到这一点,但我想知道是否可以在 中完成一行通过将父方法匹配到女儿的方法
class LivinBeing:
def __init__(self):
self._extremities = None
@property
def extremities(self):
return self._extremities
class Fish(LivinBeing):
def __init__(self):
super().__init__()
self._extremities = 2
fins = super().extremities
class Spyder(LivinBeing):
def __init__(self):
super().__init__()
self._extremities = 8
paws = super().extremities
Spyder().paws
>>> 8
您可以显式使用父 class 而不是调用 super
。在这种情况下,paws
将只是 extremities
的别名:
class Spyder(LivinBeing):
def __init__(self):
super().__init__()
self._extremities = 8
paws = LivinBeing.extremities
Spyder.extremities
# <property at 0x7f46cfbf1d50>
Spyder.paws
# <property at 0x7f46cfbf1d50>
Spyder().paws
# 8
我可以这样调用 Spyder.paws
或 Fish.fins
吗?我已经看到 this post 他们只是通过 定义一个函数 来做到这一点,但我想知道是否可以在 中完成一行通过将父方法匹配到女儿的方法
class LivinBeing:
def __init__(self):
self._extremities = None
@property
def extremities(self):
return self._extremities
class Fish(LivinBeing):
def __init__(self):
super().__init__()
self._extremities = 2
fins = super().extremities
class Spyder(LivinBeing):
def __init__(self):
super().__init__()
self._extremities = 8
paws = super().extremities
Spyder().paws
>>> 8
您可以显式使用父 class 而不是调用 super
。在这种情况下,paws
将只是 extremities
的别名:
class Spyder(LivinBeing):
def __init__(self):
super().__init__()
self._extremities = 8
paws = LivinBeing.extremities
Spyder.extremities
# <property at 0x7f46cfbf1d50>
Spyder.paws
# <property at 0x7f46cfbf1d50>
Spyder().paws
# 8