这是问题陈述。
方案是我有很多平台,并且每个平台都有某些唯一的标识,可以将其视为图形卡,硬件,软件和界面。
每个平台都可以运行与给定平台兼容的一组特定命令。
示例:
我需要编写一种代码,以便脚本分析它是哪个平台,并只运行特定于该平台的命令。
到目前为止,我已经尝试过了,
class Platform(object):
a = None
B = None
C = None
D = None
def __init__(self, A,B, C, D):
self.A = A
self.B = B
self.C = C
self.D = D
class ZODIAC(Platform):
A = attr.A_map_dict
def __init__(self, A, B, C, D):
super(ZODIAC, self).__init__(A, B, C, D)
答案 0 :(得分:0)
我将创建一组子类,然后创建一个完全独立的方法来分析您的参数并生成所需的类:
class Platform(object):
a = None
b = None
...
def __init__(self, A, B, C, D):
...
...
def execute_commands():
# abstract method - platform-specific, defined by subclasses
class ZODIAC(Platform):
A = attr.A_map_dict
...
@override
def execute_commands():
# platform-specific behavior, overriding superclass
def generate_platform(a, b, c, d):
if a == 'onething' and b == 'anotherthing':
return ZODIAC(a, b, c, d)
elif c == 'somethingelse':
return OTHER_PLATFORM(a, b, c, d)
...
编写generate_platform()
的方式应使其根据给定的变量确定哪个平台是正确的。然后,它将返回Platform
的适当子类的实例。这是多态性原理的例证,它是面向对象编程的支柱之一。