【发布时间】:2025-11-26 00:20:27
【问题描述】:
我正在尝试从文本文件输入初始化派生类。我正在尝试做的一个简单示例:
文件.txt:
1
2
main.py:
class Base:
def __init__(self, val1):
self.val1 = val1
def input_from_text(cls, init_deque):
#return cls(init_deque.popleft())
class Derived(Base):
def __init__(self, val1, val2):
Base.__init__(self, val1)
self.val2 = val2
def input_from_text(cls, init_deque):
#initialize base and derived here and return derived
def main(argv=None):
initialized_derived = Derived.input_from_text(deque(open("file.txt")))
assert initialized_derived.val1 is 1
assert initialized_derived.val2 is 2
有什么好办法吗?基本上是在寻找类似于你在 C++ 中找到的东西:
//calls operator>>(Base) then operator>>(Derived)
cin >> initialized_derived;
这样每个类都被很好地封装了,基类/派生类不需要了解彼此的任何信息(__init__ 除外,它知道基类参数的数量)。
【问题讨论】:
标签: class python-3.x inheritance initialization