实现电路:

实现方法:

class LogicGate(object):
def __init__(self, n):
self.name = n
self.output = None def get_label(self):
return self.name def get_output(self):
self.output = self.perform_gate_logic()
return self.output class BinaryGate(LogicGate):
def __init__(self, n):
super().__init__(n)
self.pinA = None
self.pinB = None def get_pinA(self):
if self.pinA == None:
return int(input("输入PinA的值 " + self.get_label() + "-->"))
else:
return self.pinA.get_from().get_output() def get_pinB(self):
if self.pinB == None:
return int(input("输入PinB的值 " + self.get_label() + "-->"))
else:
return self.pinB.get_from().get_output() def set_next_pin(self, source):
if self.pinA == None:
self.pinA = source
else:
if self.pinB == None:
self.pinB = source
else:
print("无法连接:这个逻辑门没有空引脚") class AndGate(BinaryGate):
def __init__(self, n):
super().__init__(n) def perform_gate_logic(self):
a = self.get_pinA()
b = self.get_pinB()
return a & b class OrGate(BinaryGate):
def __init__(self, n):
super().__init__(n) def perform_gate_logic(self):
a = self.get_pinA()
b = self.get_pinB()
return a | b class UnaryGate(LogicGate):
def __init__(self, n):
super().__init__(n)
self.pin = None def get_pin(self):
if self.pin == None:
return int(input("输入Pin的值 " + self.get_label() + "-->"))
else:
return self.pin.get_from().get_output() def set_next_pin(self, source):
if self.pin == None:
self.pin = source
else:
print("无法连接:这个逻辑门没有空引脚") class NotGate(UnaryGate):
def __init__(self, n):
super().__init__(n) def perform_gate_logic(self):
a = self.get_pin()
return 0 if a else 1 class Connector(object):
def __init__(self, fgate, tgate):
self.from_gate = fgate
self.to_gate = tgate
tgate.set_next_pin(self) def get_from(self):
return self.from_gate def get_to(self):
return self.to_gate def main():
g1 = AndGate("U")
g2 = AndGate("U")
g3 = OrGate("U3")
g4 = NotGate("U")
c1 = Connector(g1, g2)
c2 = Connector(g2, g3)
c3 = Connector(g3, g4)
print(g4.get_output()) main()

python类模拟电路实现的更多相关文章

  1. Python requests模拟登录

    Python requests模拟登录 #!/usr/bin/env python # encoding: UTF-8 import json import requests # 跟urllib,ur ...

  2. 用python实现模拟登录人人网

    用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46 我决定从头说起.懂的人可以快速略过前面理论看最后几张图. web基础知识 从OSI参考模型(从低到高:物理层,数据链路 ...

  3. 【Python&数据结构】 抽象数据类型 Python类机制和异常

    这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...

  4. 初级模拟电路:4-1 BJT交流分析概述

    回到目录 BJT晶体管的交流分析(也叫小信号分析)是模拟电路中的一个难点,也可以说是模电中的一个分水岭.如果你能够把BJT交流分析的原理全都搞懂,那之后的学习就是一马平川了.后面的大部分内容,诸如:场 ...

  5. 细说python类3——类的创建过程

    细说python类3——类的创建过程 https://blog.csdn.net/u010576100/article/details/50595143 2016年01月27日 18:37:24 u0 ...

  6. python类的静态方法和类方法区别

    先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法. # coding:utf-8 class Foo(object): """类三种方法语法形式&q ...

  7. python 类(object)的内置函数

    python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...

  8. python类、对象

    python类.对象 学习完本篇,你将会深入掌握 什么是类,对象 了解类和对象之间的关系 能独立创建一个People(人类),属性有姓名.性别.年龄.提供一个有参的构造方法,编写一个show方法,输出 ...

  9. Python类中super()和__init__()的关系

    Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...

随机推荐

  1. [b0034] python 归纳 (十九)_线程同步_条件变量

    代码: # -*- coding: utf-8 -*- """ 学习线程同步,使用条件变量 逻辑: 生产消费者模型 一个有3个大小的产品库,一个生产者负责生产,一个消费者 ...

  2. python 小数据池 深浅拷贝 集合

    1.小数据池: 1.1代码块: 一个文件,一个函数,一个类,一个模块,终端中每一行 1.1.1 数字: -5 ~ 256 1.1.2 字符串: 乘法时总长度不能超过20 1.1.3 布尔值: 内容相同 ...

  3. [Go] 利用channel形成管道沟通循环内外

    这个要解决的问题是,比如如果有一个大循环,取自一个大的文件,要进行逻辑处理,那么这个逻辑的代码要放在循环每一行的循环体里面,这样有可能会出现一个for循环的逻辑嵌套,一层又一层,类似俄罗斯套娃.如果放 ...

  4. [视频教程] ubuntu系统下以守护进程方式安装使用Redis

    直接访问redis的中国官网,在下载部分,可以看到安装和使用的方式.wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzf r ...

  5. TensorFlow Federated:基于分散式数据的机器学习

    https://www.tensorflow.org/federated/ TensorFlow Federated (TFF) 是一个开源框架,用于对分散式数据进行机器学习和其他计算.我们开发 TF ...

  6. Vue中怎样使用swiper组件?

    我用的VS Code编译器,首先打开终端,进入项目(我是在13-vue文件夹下面的elem中使用) D:\study\web\13-vue\elem> cnpm install vue-awes ...

  7. 再次体会wireshark的威力!

    今天一位同学给我打电话,说是重启了客户机房里的一台服务器A,重启之后此台服务器不能与B服务器通信了,要命的是A台服务器上有关键数据需要与B服务器进行通信交互.客户大发雷霆,同学的老板也发火一再催促要尽 ...

  8. Springboot上传图片并访问

    Springboot上传图片并访问 步骤 配置绝对路径,并将这个绝对路径添加到springboot静态资源目录中. 文件上传使用绝对路径保存.返回web相对路径,前端加上域名和项目路径,生成完整的路径 ...

  9. 关于SPFA算法的优化方式

    关于SPFA算法的优化方式 这篇随笔讲解信息学奥林匹克竞赛中图论部分的求最短路算法SPFA的两种优化方式.学习这两种优化算法需要有SPFA朴素算法的学习经验.在本随笔中SPFA朴素算法的相关知识将不予 ...

  10. 第02组Beta版本演示

    组长博客 组名:十一个憨比 本组组员: 学号 姓名 分工 贡献比例 181700413 黄智 写Beta冲刺的四次博客,写评审表,写word,统筹规划 9% 131700309 林闽沪 代码实现,答辩 ...