Python逻辑电路
Python logic circuit
这个程序是我从视频里抄来的,我觉得AndGateclass里面的__init__
函数是不需要的,因为AndGateclass里面没有定义新的实例。有人可以证实我的推理吗?
class LogicGate:
def __init__(self,n):
self.label = n
self.output = None
def getLabel(self):
return self.label
def getOutput(self):
self.output = self.performGateLogic()
return self.output
class BinaryGate(LogicGate):
def __init__(self,n):
LogicGate.__init__(self,n)
self.pinA = None
self.pinB = None
def SetNextPin(self,source):
if self.pinA == None:
self.pinA = source #pin a became a instance of connector class, conntector.gate.pinA
else:
if self.pinB == None:
self.pinB = source
else:
raise RuntimeError("Error: NO EMPTY PINS")
def getA(self):
if self.pinA == None:
return int(input("Enter Pin A input for gate "+self.getLabel()+"-->"))
else:
return self.pinA.getfg().getOutput()
def getB(self):
if self.pinB == None:
return int(input("Enter Pin B input for gate "+self.getLabel()+"-->"))
else:
return self.pinB.getfg().getOutput()
class AndGate(BinaryGate):
def __init__(self,n):
BinaryGate.__init__(self,n)
def performGateLogic(self):
a = self.getA()
b = self.getB()
if a == 1:
if a == b:
return 1
else:
return 0
你是对的,AndGate
class下的__init__
是没有必要的。 (在 python 中使用此特定示例进行测试,并使用新的 class 进行验证)。它与如何处理 python 中的继承有关:自动调用父 class 的 __init__
函数。
这个程序是我从视频里抄来的,我觉得AndGateclass里面的__init__
函数是不需要的,因为AndGateclass里面没有定义新的实例。有人可以证实我的推理吗?
class LogicGate:
def __init__(self,n):
self.label = n
self.output = None
def getLabel(self):
return self.label
def getOutput(self):
self.output = self.performGateLogic()
return self.output
class BinaryGate(LogicGate):
def __init__(self,n):
LogicGate.__init__(self,n)
self.pinA = None
self.pinB = None
def SetNextPin(self,source):
if self.pinA == None:
self.pinA = source #pin a became a instance of connector class, conntector.gate.pinA
else:
if self.pinB == None:
self.pinB = source
else:
raise RuntimeError("Error: NO EMPTY PINS")
def getA(self):
if self.pinA == None:
return int(input("Enter Pin A input for gate "+self.getLabel()+"-->"))
else:
return self.pinA.getfg().getOutput()
def getB(self):
if self.pinB == None:
return int(input("Enter Pin B input for gate "+self.getLabel()+"-->"))
else:
return self.pinB.getfg().getOutput()
class AndGate(BinaryGate):
def __init__(self,n):
BinaryGate.__init__(self,n)
def performGateLogic(self):
a = self.getA()
b = self.getB()
if a == 1:
if a == b:
return 1
else:
return 0
你是对的,AndGate
class下的__init__
是没有必要的。 (在 python 中使用此特定示例进行测试,并使用新的 class 进行验证)。它与如何处理 python 中的继承有关:自动调用父 class 的 __init__
函数。