tao*_*ocp 34 python inheritance class
我的Python知识有限,我需要一些帮助来解决以下问题.
假设我有两个类A和B,是有可能做类似如下(概念)在Python:
import os
if os.name == 'nt':
class newClass(A):
# class body
else:
class newClass(B):
# class body
Run Code Online (Sandbox Code Playgroud)
所以问题是我想创建一个类newClass,它将根据平台差异从不同的基类继承,这可能在Python中做吗?谢谢.
ars*_*jii 68
您可以使用条件表达式:
class newClass(A if os.name == 'nt' else B):
...
Run Code Online (Sandbox Code Playgroud)
Hen*_*ter 12
是的,你可以做你写的.虽然就个人而言,我可能会这样做以保持清洁:
class _newClassNT(A):
# class body
class _newClassOther(B):
# class body
newClass = _newClassNT if os.name == 'nt' else _newClassOther
Run Code Online (Sandbox Code Playgroud)
这假设你需要在类体内实现不同的实现.如果您只需要更改继承,您可以在if那里嵌入一个语句:
class newClass(A if os.name == 'nt' else B):
# class body
Run Code Online (Sandbox Code Playgroud)