在代码维护的过程中,发现需要对某个变量进行保护,不允许调用修改,之前我一直使用的是_x或者__x的形式,这样做只是避免展示,但是如果想要强行修改,还是可以变更的,为了保证高安全性,这边可以参考@property的形式:

class test(object):"""docstring for test"""def __init__(self, arg):self._arg = arg@propertydef arg(self):return self._arg@arg.setterdef set_arg(self,val):self._arg=val

当想修改arg的值的时候,必须通过set_arg去修改,虽然仍然可以通过改_arg的方式,但是相对直接暴露多了一层保护;除此之外,它还可以实现一定的逻辑转化:

In [10]: class test(object):...:     """docstring for test"""...:  def __init__(self, arg):...:        self._arg = arg...:        self._half_arg = arg/2...: ...:    @property...:  def arg(self):...:      return self._arg...:...:    @property...:  def half_arg(self):...:         return self._half_arg...: ...:  @arg.setter...:    def set_arg(self,val):...:      self._arg=val...:      self._half_arg = val/2...:In [11]: t=test(10)In [12]: t.arg
Out[12]: 10In [13]: t.half_arg
Out[13]: 5.0In [14]: t.set_arg=20In [15]: t.arg
Out[15]: 20In [16]: t.half_arg
Out[16]: 10.0

利用None!=None的性质可以进行快速去None,比如:

a = df[df.label_y==df.label_y]

可以快速的把label_y=None的列进行剔除,比dropna要快一些。


traceback可以很好的把错误信息进行暴露,

try:1/0
except Exception,e:print e

如果这样包起来错误的花,输出结果是integer division or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错

如果使用traceback:

try:1/0
except Exception  as e:traceback.print_exc()

输出结果是:

Traceback (most recent call last): File “test_traceback.py”, line 3, in  1/0 ZeroDivisionError: integer division or modulo by zero

这个还不是精髓的,如果说在一个服务中,或者大型项目中,我们不会时时刻刻去盯着进程,还可以进行落日志,方便后续查看:

traceback.print_exc(file=open('tb.txt','w+'))
import time
try:1/0
except Exception  as e:traceback.print_exc(file=open(str(time.time())+'.txt','w+'))

欢迎大家关注我的个人bolg,知乎,更多代码内容欢迎follow我的个人Github,如果有任何算法、代码、转行疑问都欢迎通过邮箱发消息给我。

Python踩坑指南(第三季)相关推荐

  1. Python踩坑指南(第一季)

    最近在python开发的过程中,发现了一些比较有意思的问题,确实让自己在开发过程中被恶心了一把,所以开了这个连续的更新博文,之后会持续的按第一第二第三这种版本下去,更新一些比较有意思的python代码 ...

  2. Python踩坑指南(第二季)

    本期围绕jieba讲一个我遇到的实际问题,在同一个服务里,存在两个不同接口A和B,都用到了jieba分词,区别在于两者需要调用不同的词库,巧合中,存在以下情况: 词库A:"干拌面" ...

  3. pytorch .item_从数据到模型,你可能需要1篇详实的pytorch踩坑指南

    原创 · 作者 | Giant 学校 | 浙江大学 研究方向 | 对话系统.text2sql 熟悉DL的朋友应该知道Tensorflow.Pytorch.Caffe这些成熟的框架,它们让广大AI爱好者 ...

  4. 阿里云天池【Docker练习场】踩坑指南

    阿里云天池[Docker练习场]踩坑指南 题目直达 提交环境搭建(基于macOS) Docker的安装与基本功能使用 Docker安装过程遇到的小问题 提交结果注意事项 提交时的镜像配置 项目结构规范 ...

  5. tabbar角标 小程序_【沃行课堂】恭喜你遇到“坑”,小程序踩坑指南

    上周我们的开发小哥哥带领我们一起领略了开发中遇到的各种问题,以及基于SaaS模式的平台技术架构及实现.本周我们换个方向,由高级开发工程师秋哥带领大家共同探讨下小程序开发中踩过的坑.秋哥会从公司的几个小 ...

  6. Git Commit Message校验踩坑指南

    背景 在团队多人开发中,规范的commit message可以快速定位代码提交历史,回溯问题根源,方便组内多人协作,提高团队效率. 本篇文章主要包含以下两方面内容: commitizen/cz-cli ...

  7. MacBook通过XGP玩女神异闻录5皇家版不踩坑指南

    XGP是微软Xbox游戏通行证服务,全称Xbox Game Pass,俗称西瓜皮. 女神异闻录5皇家版(P5R)登录了全平台,XGP会员可以通过云游戏在MacBook中游玩,本篇为MacBook玩P5 ...

  8. 联调中通wincall平台-踩坑指南

    开发踩坑指南 初始化阶段 new CTIPlus({token: user.token, //tokenagentPhone: user.phone, //坐席工号或者手机号agNo: user.ag ...

  9. Spring Cloud踩坑指南

    Spring Cloud踩坑指南 1 Spring Cloud搭建 参考 Spring Cloud 微服务技术栈:搭建高可用 Eureka Server.服务注册与发现 2 常见问题 2.1 修改ho ...

最新文章

  1. VBscript.Encode 解码器
  2. 数据结构与算法笔记(十四)—— 二叉树
  3. 共识协议(9)NPOS波卡
  4. Pandas数据挖掘与分析时的常用方法
  5. python和lua哪个有前途_(转)LUA与python根本就不具有可比性
  6. 028 -bash-4.1$ 出现故障的原理及解决办法?
  7. 企业网站6个常见的优化漏洞
  8. 【网站】Bing每日壁纸API分享
  9. c++ 写x64汇编 5参数_第9篇-C/C++ x86_64的函数栈
  10. android 注册静态广播接收器VS注册动态广播接收器
  11. cvThreshold() 阈值化
  12. ogg怎么转mp3格式,ogg转mp3方法
  13. Windows注册表详解
  14. 测试专业相机快门软件,检测快门次数软件 快门数量检测
  15. 【Micro USB选择指南】手工焊接Micro USB接口器件型号选择
  16. 周末闲暇用javascript写个网页“斗兽棋”小游戏
  17. 4G EPS 中的 PDN Connection
  18. Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must hav
  19. 生鲜配送管理系统_升鲜宝V2.0 供应商协同系统设计思想及设计效果展现(一)...
  20. C-Kermit在linux 下的安装和使用

热门文章

  1. osg中运用Shader(osg初级篇2)
  2. 大连理工IIAU Lab提出SSLSOD:自监督预训练的RGB-D显著性目标检测模型(AAAI 22)
  3. 面向自动驾驶领域的3D点云目标检测方法汇总!(单模态+多模态/数据+代码)
  4. 基于PHP的图片共享网站设计,基于PHP实现的WEB图片共享系统(SQL数据库),毕业论文设计...
  5. 怎么两边同时取ln_脏辫发型怎么编编发教程图解简单易学!
  6. day9 线程与进程、队列
  7. ICLR2020 | CS-GNN:用平滑度刻画图信息的使用
  8. RDKit toolkit实战二:Generating Similarity Maps Using Fingerprints
  9. WIN10python3.7配置MaskRCNN环境及demo测试(tensorflow-gpu1.x)
  10. python while if 区别_对python中for、if、while的区别与比较方法