![](/img/trans.png)
[英]How to implement abstract class methods as static method in inherited class in python?
[英]In Python, how should I implement an Inherited class with the exact same properties and methods as the Parent class?
我正在使用 Python 做一個項目,並定義了一個名為Encoder
的基礎 class :
class Encoder:
def __init__(self):
...
def encode(self, text):
...
現在我想創建兩個名為RotatingEncoder
和StaticEnocder
的子類,它們繼承自這個 class。
class RotatingEncoder(Encoder):
def __init__(self, rotor_size=26):
...
# do stuff
...
super().__init__()
def encode(self, text):
...
# do stuff
...
return super().encode(text)
定義RotatingEnocder
很容易,但我對如何定義StaticEnocder
有一些疑問。
StaticEncoder
的工作方式與Encoder
object 完全相同。 它的所有屬性和方法都是相同的。 但是我該如何定義呢? 以下是我想到的兩種方法:
# Method A
class StaticEncoder(Encoder):
pass
# Method B
class StaticEncoder(Encoder):
def __init__(self):
super().__init__()
def encode(self, text):
return super().encode(text)
我應該使用其中一種方法還是任何其他方法? 我希望我的代碼盡可能具有可讀性和 Pythonic
如果絕對要求Encoder
是非抽象基class,方法A最好:
class StaticEncoder(Encoder):
pass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.