📅  最后修改于: 2023-12-03 15:12:44.464000             🧑  作者: Mango
这道题目需要你实现一个门类,包括基础门和组合门,以及这些门的特定行为,例如输出和计算等。这道题需要你在OOP的框架下编写代码。
首先,我们需要实现 Gate
类,它是模拟电路中的基本逻辑门的抽象基类。 Gate
类包括以下三个元素:
pins
:表示门的输入引脚的数量。label
:标志门类型的名称。output
:表示门的输出状态。你需要实现两个方法:
def get_label(self):
return self.label
def get_output(self):
self.output = self.perform_logic()
return self.output
get_label
方法返回门的类型名称,而 get_output
方法使用 perform_logic
抽象方法计算门的输出,并将其存储在 output
属性中。
继承基类 Gate
,我们可以实现以下基本门类型:BinaryGate
和UnaryGate
,它们仅有一个输出和两个或一个输入引脚。你需要继承 Gate
类并实现以下属性和方法:
BinaryGate
__init__(self, n):
: 构造方法,它将 n
设为引脚的数目。get_pinA(self):
:返回 pinA
上的输入状态 。get_pinB(self):
:返回 pinB
上的输入状态 。UnaryGate
__init__(self):
:构造方法。get_pin(self):
:返回输入状态。现在,让我们实现组合门,他们使用基本门类型和其他组合门类型作为输入。我们可以使用以下两个门类型:AndGate
和OrGate
。
AndGate
AndGate
继承 BinaryGate
类,我们需要实现以下方法:
perform_logic(self):
:返回 Pin
A 和 Pin
B 的逻辑 and
。OrGate
OrGate
也继承 BinaryGate
类,我们需要实现以下方法:
perform_logic(self):
:返回 Pin
A 和 Pin
B 的逻辑 or
。## 门 | GATE-CS-2017(套装2)|问题 6
这道题目需要你实现一个门类,包括基础门和组合门,以及这些门的特定行为,例如输出和计算等。这道题需要你在OOP的框架下编写代码。
### 基础门
首先,我们需要实现 `Gate` 类,它是模拟电路中的基本逻辑门的抽象基类。 `Gate` 类包括以下三个元素:
- `pins`:表示门的输入引脚的数量。
- `label`:标志门类型的名称。
- `output`:表示门的输出状态。
你需要实现两个方法:
def get_label(self): return self.label
def get_output(self): self.output = self.perform_logic() return self.output
`get_label` 方法返回门的类型名称,而 `get_output` 方法使用 `perform_logic` 抽象方法计算门的输出,并将其存储在 `output` 属性中。
### 基本门
继承基类 `Gate`,我们可以实现以下基本门类型:`BinaryGate`和`UnaryGate`,它们仅有一个输出和两个或一个输入引脚。你需要继承 `Gate` 类并实现以下属性和方法:
#### `BinaryGate`
- `__init__(self, n):`: 构造方法,它将 `n` 设为引脚的数目。
- `get_pinA(self):` :返回 `pinA` 上的输入状态 。
- `get_pinB(self):` :返回 `pinB` 上的输入状态 。
#### `UnaryGate`
- `__init__(self):`:构造方法。
- `get_pin(self):`:返回输入状态。
### 组合门
现在,让我们实现组合门,他们使用基本门类型和其他组合门类型作为输入。我们可以使用以下两个门类型:`AndGate`和`OrGate`。
#### `AndGate`
`AndGate` 继承 `BinaryGate` 类,我们需要实现以下方法:
- `perform_logic(self):`:返回 `Pin` A 和 `Pin` B 的逻辑 `and`。
#### `OrGate`
`OrGate` 也继承 `BinaryGate` 类,我们需要实现以下方法:
- `perform_logic(self):`:返回 `Pin` A 和 `Pin` B 的逻辑 `or`。