3 TEDxPY

尚未进行身份认证

我要认证

微信公众号 TTTEED

等级
TA的排名 4w+

初次薅羊毛,收益一千块,简单复盘

0“薅 [hāo]羊毛”这个词,大家都不陌生,早在 1999 年赵本山的春晚小品《昨天今天明天》中白云大妈就已经开始“薅羊毛织毛衣”了。衍生到今天,所谓“薅羊毛”多指我们利用网络上各种...

2020-08-23 23:57:45

Python VTK 交互系统 1 交互模式入门

文章参考自《VTK 交互系统 1 交互模式入门》,按自己理解用 Python 实现相关功能如下:原文中只提及相关函数,为了能直接展示效果,我这引入一个箭头模型,想移除该模式下右键缩放功能,改成右键点击自定义输出“点击右键”信息,代码如下:import vtk# 自定义右键点击事件def right_click(obj, ev): print("点击右键")arrow = vtk.vtkArrowSource()# sphere = vtk.vtkSphereSource()ar

2020-08-17 19:29:01

Python 多线程锁

无锁多线程案例import threadingimport timenum = 100def fun_sub(): global num num2 = num time.sleep(0.001) num = num2 - 1if __name__ == '__main__': print('开始测试同步锁 at %s' % time.ctime()) thread_list = [] for thread in range(100)

2020-08-14 18:54:35

Python 获取串口通信缓存大小

Python 调用串口通信时,一般都是通过 serial 模块先进行实例化:import serialted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)若想获取电脑端串口输入缓存以及输出缓存大小(bytes),可以通过该实例的 in_waiting (当前输入端缓存字节数) 和 out_waiting (当前输出端缓存字节数) 查看。若一次性发送大量请求并收到相应的返回信息,尚未进行读取,则可凭此来查看当前

2020-08-14 14:49:36

我的第一个 10W+

写一篇 10W+ 阅读的文章 和 做一款 10W+ 用户的小程序,你觉得哪个难?不妨参考下目前我运营的公众号和小程序:1. TTTEED 公众号:自 2019 年 1月起运营,内容包含 ...

2020-08-14 01:06:26

Python @property 基本用法和缺点

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 31 条:用描述符来改写需要复用的 @property 方法@property 基本用法@property 修饰器,需要在类中先对某属性同名方法进行修饰器附加,再以 @属性名.setter 的修饰器对该方法进行改写:class Homework(object): def __init__(self): self._grade = 0 @property def

2020-08-13 10:45:27

ODrive 串口通信入门指南

ODrive 官方入门指南中,采用的是 USB 连接控制模式(中文翻译版本链接)使用的是 Native Protocol。当我们需要尝试串口通信实现时,需要专程 ASCII 协议来进行串口通信实现相关的命令,结合着入门指南以及 ODrive 中的相关属性方法参数,将流程中用到的相关方法整理如下:import serialimport timeted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)ted.writ

2020-08-12 20:04:13

ODrive ASCII 协议串口通信命令整理

ODrive ASCII 协议串口通信命令整理将 USB to TTL 插入到电脑 USB 1470 端口,识别为 tty.wchusbserial1470,设置波特率,通过 serial 模块实例化:import serialted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)请求信息状态指令格式:f motor回复格式:pos vel注:f 表示请求返回信息;motor 表示电机编号,0 或

2020-08-12 19:55:33

Python @property 实时计算数值属性进行属性重构

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 30 条:考虑用 @property 来代替属性重构。首先定义个水桶类,需要向其中注入水才有限额可以消耗使用,采用时间模块控制操作顺序:from datetime import timedelta, datetimeclass Bucket(object): def __init__(self, period): self.period_delta = timedelta(

2020-08-12 12:09:59

USB to TTL python 本地测试串口通信

手头上有个 USB to TTL CH340 型号的,想在本地用 python 测试下串口通信。硬件准备首先是 USB to TTL 元件,找个跳线帽将 TXD 和 RXD 针脚相连,插到电脑上下载驱动下载对应电脑系统的 CH340 驱动:https://sparks.gogo.co.nz/ch340.html设备搜寻打开终端/命令行,输入以下命令来搜寻设备:ls /dev/tty.wchusbserial*你将得到如下格式的结果,复制下备用/dev/tty.wchusbserial

2020-08-11 11:42:04

Python @property 用法

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 29 条:用纯属性取代 get 和 set 方法。Python 类 public 属性首先,python 类中的 public 属性可以实现 setter 和 getter 等工具方法功能,动态修改、获取类中的属性:class Resistor(object): def __init__(self, ohms): self.ohms = ohms self.vo

2020-08-11 10:25:41

树莓派 4 UART 多串口配置通信

相比树莓派零、1、2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派 4 中新增了 4 个 PL011 串口共计有 6 个 UART,整理此笔记用作记录和配置参考。UART 配置1. 展示所有串口命令$ dtoverlay -a | grep uart展示 pi4 中所有串口pi@raspberrypi:~ $ dtoverlay -a | grep uart midi-uart0 midi-uart1 miniuart-bt uart0

2020-08-10 17:00:39

PyQt5 布局管理器学习

0 知识点思维导图1. 手动布局代码,三个横向标签竖直排列:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("布局管理的学习") self.resize(500, 500) self.setup_ui() def setup_ui(self):

2020-08-07 18:42:31

PyQt5 下拉列表控件案例代码

描述,第一个下拉菜单代表省,选择后控制第二个城市的下拉菜单,每个城市有相应编码,打印选中的城市编码:代码如下:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QComboBox 综合案例") self.resize(500, 500) self.connected =

2020-08-06 18:49:37

PyQt5 QComboBox 学习笔记

PyQt5 QComboBox 下拉框学习笔记,按代码一步步来1. 构造函数QComboBox 的构造函数是 QComboBox(parent: QWidget = None),应用到代码中如下:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QComboBox 的学习") sel

2020-08-05 19:07:35

PyQt5 QComboBox setMaxVisibleItems 不生效

QComboBox 中可以通过 setMaxCount(self, int) 来设置下拉框总条目数,以及 setMaxVisibleItems(self, int) 设置最大可显示的条目数、即一屏显示的条目是,多余的靠下拉继续展示但实际操作时发现 setMaxVisibleItems(self, int) 这个并不能生效,原因是该方法需要配合将 QComboBox 设置为可编辑模式:cb = QComboBox(self)# 设定最大条目个数cb.setMaxCount(5)# 设置最大显示个数

2020-08-05 17:53:23

python3 自动打开浏览器搜索

import webbrowserfrom urllib.parse import quotedef search_word(text): new_text =quote(text) url = 'http://www.baidu.com/s?wd=%s' % new_text webbrowser.open(url)target = "test 中国"search_word(target)注:url 链接只能包含ASCII字符,如果目标链接中有中文等非 ASCI

2020-08-05 16:40:19

python 类的 public protected private 属性

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 27 条:多用 public 属性,少用 private 属性三种属性python 类的成员变量中按可见度可划分为 public、protected 以及 private 属性class MyObject(object): def __init__(self): self.public_field = 5 self._protect_filed = 8

2020-08-05 10:44:50

Python mix-in 组件简介

整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 26 条,只在使用 Mix-in 组件制作工具类时进行多重继承mix-in 定义mix-in 是一种小型的类,它只定义了其他类可能需要提供的一套附加方法,而不定义自己的实例属性,此外,它也不要求使用者调用自己的 __init__ 构造器要点能用 mix-in 组件实现的效果,就不要用多重继承来做将各功能实现为可插拔的 mix-in 组件,然后令相关的类继承自己需要的那些组件,即可定制该类实例所

2020-08-04 10:06:59

Python super 父类初始化

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 25条:用 super 初始化父类简单的继承体系初始化父类的传统方式是在子类里用子类实例直接调用父类的 __init__ 方法class MyBaseClass(object): def __init__(self, value): self.value = valueclass MyChildClass(MyBaseClass): def __init__(se

2020-08-03 10:58:47

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)