显示有限的接口到外部

当发布python第三方package时, 并不但愿代码中全部的函数或者class能够被外部import, 在__init__.py中添加__all__属性,python

该list中填写能够import的类或者函数名, 能够起到限制的import的做用, 防止外部import其余函数或者类安全

更多Python视频、源码、资料加群683380553免费获取闭包

with的魔力

with语句须要支持上下文管理协议的对象, 上下文管理协议包含__enter__和__exit__两个方法. with语句创建运行时上下文须要经过这两个方法执行进入和退出操做.ide

其中上下文表达式是跟在with以后的表达式, 该表示大返回一个上下文管理对象函数

知道具体原理, 咱们能够自定义支持上下文管理协议的类, 类中实现__enter__和__exit__方法ui

执行结果以下:命令行

证实了会先执行__enter__方法, 而后调用with内的逻辑, 最后执行__exit__作退出处理, 而且, 即便出现异常也能正常退出3d

filter的用法

相对filter而言, map和reduce使用的会更频繁一些, filter正如其名字, 按照某种规则过滤掉一些元素视频

一行做判断

当条件知足时, 返回的为等号后面的变量, 不然返回else后语句对象

装饰器之单例

使用装饰器实现简单的单例模式

staticmethod装饰器

类中两种经常使用的装饰, 首先区分一下他们

普通成员函数, 其中第一个隐式参数为对象

classmethod装饰器, 类方法(给人感受很是相似于OC中的类方法), 其中第一个隐式参数为类

staticmethod装饰器, 没有任何隐式参数. python中的静态方法相似与C++中的静态方法

property装饰器

定义私有类属性

将property与装饰器结合实现属性私有化(更简单安全的实现get和set方法)

fget是获取属性的值的函数,fset是设置属性值的函数,fdel是删除属性的函数,doc是一个字符串(like a comment).从实现来看,这些参数都是可选的

property有三个方法getter(), setter()和delete() 来指定fget, fset和fdel。 这表示如下这行

iter魔法

经过yield和__iter__的结合, 咱们能够把一个对象变成可迭代的

经过__str__的重写, 能够直接经过想要的形式打印对象

神奇partial

partial使用上很像C++中仿函数(函数对象).

在stackoverflow给出了相似与partial的运行方式

利用用闭包的特性绑定预先绑定一些函数参数, 返回一个可调用的变量, 直到真正的调用执行

神秘eval

eval我理解为一种内嵌的python解释器(这种解释可能会有误差), 会解释字符串为对应的代码并执行, 而且将执行结果返回

看一下下面这个例子

exec

exec在Python中会忽略返回值, 老是返回None, eval会返回执行代码或语句的返回值

exec和eval在执行代码时, 除了返回值其余行为都相同

在传入字符串时, 会使用compile(source, '', mode)编译字节码. mode的取值为exec和eval

getattr

getattr(object, name[, default])Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For example, getattr(x, ‘foobar’) is equivalent to x.foobar. If the named attribute does not exist, default is returned if provided, otherwise AttributeError is raised.

经过string类型的name, 返回对象的name属性(方法)对应的值, 若是属性不存在, 则返回默认值, 至关于object.name

命令行处理

读写csv文件

各类时间形式转换

只发一张网上的图, 而后差文档就行了, 这个是记不住的

字符串格式化

一个很是好用, 不少人又不知道的功能

学到了吗?

python神奇功能_16个你毫不知道的Python神奇技能相关推荐

  1. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上...

    [toc] 今天开始将会发布系列型的Python学习, 今天讲述的框架相对来说比较多,只能一一例举出来, 无法进行准确的 Python5大擅长领域 很多学Python的小伙伴, 转行, 或者兴趣还有就 ...

  2. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)

    文章目录 Python5大擅长领域 WEB开发 网络编程 科学运算 GUI图形开发 运维自动化 Python在世界上的知名应用 国外 谷歌 CIA NASA YouTube Dropbox Insta ...

  3. python 3.9特性,开发者应该知道的Python 3.9新特性

    导读:Python 3.9来了,有哪些新特性值得学,值得用? Python 2.9(5.10.2020)已经发布了一段时间,最后一个Alpha版(3.9.0a5)近期发布了测试版.开发者应该看新版有哪 ...

  4. 你需要知道的 Python 3.10 和 Python 3.9 之间的差异

    介绍: 在过去的几十年里,Python 在编程或脚本语言领域为自己创造了一个名字.python 受到高度青睐的主要原因是其极端的用户友好性.Python 还用于处理复杂的程序或编码挑战.机器学习 (M ...

  5. python程序员又叫什么-Python程序员鲜为人知但你应该知道的17个问题

    Python 程序员应该具备怎样的基本能力即使不见面,不说话,不发信息,小编也会在心里留一个位置,安安稳稳的放着一个人. 1. 熟悉Python语言的语法和一些高级特性,合适的时下使用适合的语言特性. ...

  6. 熊猫tv新功能介绍_您应该知道的4种熊猫绘图功能

    熊猫tv新功能介绍 Pandas is a powerful package for data scientists. There are many reasons we use Pandas, e. ...

  7. 作为程序员,起码要知道的 Python 修饰器!

    Python修饰器是个非常强大的概念,可以用一个函数去"包装"另一个函数.修饰器的思想,就是把函数中除了正常行为之外的部分抽象出去.这样有很多好处,如很容易进行代码复用,并且能遵守 ...

  8. 你知道的Python面向对象真的是全面的嘛?看看这个你就知道了

    重点解释,此对象非彼对象,耐心看完你会对面向对象有一个深刻细致的了解 这是个人对面向对象的一些小理解,Python是一条慢慢长路,孤军奋进会很累,如果累的话可以在文末可以看到辣条我的明片,我们一起奋笔 ...

  9. 你想要知道的Python日期格式化知识都在这

    Python中日期格式化是非常常见的操作,Python 中能用很多方式处理日期和时间,转换日期格式是一个常见的功能.Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时 ...

最新文章

  1. java 规则引擎_GitHub - javaso/rulegin: 分布式规则引擎系统,重构于开源IOT项目thingboard...
  2. 用谷歌搜索技术问题一定比用百度好?也未必...
  3. OAuth2.0相关知识
  4. Android 底部导航栏添加消息数目提示
  5. flex3提示mysql2_Flex中的MySQL管理(2)_MySQL
  6. JMM层面的内存屏障-HappenBefore
  7. Response_案例2_输出字符数据
  8. 使用kettle将文本文件中的数据导入数据库
  9. Qt文档阅读笔记-Advanced Signals and Slots Usage解析与实例
  10. java运费模板设计_猿实战17——实现你未必知晓的运费模板
  11. 痛苦的evo安装之旅,终于成功了
  12. linux 赋权文件,linux文件赋权
  13. 反锐化掩膜_带噪声抑制的反锐化掩模图像增强算法
  14. Arduino Uno 人体红外传感器实验-图文详录
  15. 英特尔芯片漏洞比想象中更严重:控制计算机无需密码
  16. 华为云服务器型号解析——通用计算型
  17. LYOI2018 Hzy's Planets
  18. onclick绑定点击事件不触发
  19. Python使用PuLP第三方库解决线性规划问题
  20. 天基实业理财要学会变通

热门文章

  1. Python量化交易基础讲堂-详解随机数的生成
  2. 如何迎接新的 .NET 时代
  3. flask+uwsgi 在调试过程中让python文件的更改自动重启uwsgi
  4. HDOJ 5184 Brackets 卡特兰数扩展
  5. Linux shell篇---之一--shell基础
  6. 我的Android进阶之旅------Android图片处理(Matrix,ColorMatrix)
  7. eclipse不能自动编译工程的解决方法
  8. Google Native Client介紹
  9. 华为机试HJ23:删除字符串中出现次数最少的字符
  10. java九九成表发_用EXCEL可多种办法生成99乘法表