python类模拟电路实现
实现电路:
实现方法:
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类模拟电路实现的更多相关文章
- Python requests模拟登录
Python requests模拟登录 #!/usr/bin/env python # encoding: UTF-8 import json import requests # 跟urllib,ur ...
- 用python实现模拟登录人人网
用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46 我决定从头说起.懂的人可以快速略过前面理论看最后几张图. web基础知识 从OSI参考模型(从低到高:物理层,数据链路 ...
- 【Python&数据结构】 抽象数据类型 Python类机制和异常
这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...
- 初级模拟电路:4-1 BJT交流分析概述
回到目录 BJT晶体管的交流分析(也叫小信号分析)是模拟电路中的一个难点,也可以说是模电中的一个分水岭.如果你能够把BJT交流分析的原理全都搞懂,那之后的学习就是一马平川了.后面的大部分内容,诸如:场 ...
- 细说python类3——类的创建过程
细说python类3——类的创建过程 https://blog.csdn.net/u010576100/article/details/50595143 2016年01月27日 18:37:24 u0 ...
- python类的静态方法和类方法区别
先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法. # coding:utf-8 class Foo(object): """类三种方法语法形式&q ...
- python 类(object)的内置函数
python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...
- python类、对象
python类.对象 学习完本篇,你将会深入掌握 什么是类,对象 了解类和对象之间的关系 能独立创建一个People(人类),属性有姓名.性别.年龄.提供一个有参的构造方法,编写一个show方法,输出 ...
- Python类中super()和__init__()的关系
Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...
随机推荐
- 区块链社交APP协议分析:Qbao
- Qbao是什么 - Qbao报文情况 本节我们开始使用Qbao软件,并抓取其报文进行分析. 对APP进行协议分析抓包的一般过程是: 1.打开抓包APP进行抓包: 2.打开APP开始使用: 3.对每 ...
- 【微信小程序】App.js生命周期
1.小程序的生命周期-App.js App() 必须在 app.js 中注册,且不能注册多个.所以App()方法在一个小程序中有且仅有一个. App({ onLaunch: function () { ...
- Mixins and Python
什么是Mixin (混入) Mixin 这个词在Python/Ruby中经常使用, Java 中几乎看不到这个名词. 在Java 中, 我们经常定一个一个子类扩展了某个基类, 同时实现某些接口. 因为 ...
- SQL Server Alwayson 主从数据库账号同步
我们建立了Alwayson后,辅助副本下的数据库是没有相应的账号的,怎么样进行账号的同步呢?怎么在不知道密码的情况下,进行账号的同步设置. 我们可以通过SP--sp_help_revlogin 来实现 ...
- mysql操作数据表
目录 创建数据表 列约束 查看数据表结构 列类型(字段类型) 整型 浮点型 字符串 时间日期类型 Date Time Datetime Timestamp Year 枚举enum 修改表名 增加字段 ...
- flask接收跨域请求
ajax发送数据类型为json即可 接受数据详见下文 https://www.cnblogs.com/anxminise/p/9814326.html
- 设备树(device tree)学习笔记【转】
转自:https://www.cnblogs.com/pengdonglin137/p/4495056.html 阅读目录(Content) 1.反编译设备树 2.分析工具fdtdump 3.Linu ...
- bootstrap多级下拉菜单
只需为下拉菜单的任意 <li> 元素添加 .dropdown-submenu 的类,并在该 <li> 元素下添加 .dropdown-menu 类的列表,就可以为该菜单项添加一 ...
- 有史以来Mysql面试题大全详解?
1.MySQL的复制原理以及流程 根柢原理流程,3个线程以及之间的相关: 主:binlog线程——记载下悉数改动了数据库数据的语句,放进master上的binlog中: 从:io线程——在运用sta ...
- Angular命令和基础操作
本文档假设你已经熟悉了 HTML,CSS,JavaScript和来自最新标准的一些知识,比如类和模块. 一.Angular命令 命令语法: 大多数命令以及少量选项,会有别名.别名会显示在每个命令的语法 ...