下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >编程语言 >Python奇技淫巧 (1)

Python奇技淫巧 (1)

课课家iOS游客发布于 2018-04-08 09:09查看:918

显示有限的接口到外部

当发布python第三方package时, 并不希望代码中所有的函数或者class可以被外部import, 在__init__.py中添加__all__属性,
该list中填写可以import的类或者函数名, 可以起到限制的import的作用, 防止外部import其他函数或者类

image.png

with的魔力

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

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

image.png

详细原理可以查看这篇文章《》

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

image.png

执行结果如下:

image.png

证明了会先执行 __enter__ 方法, 然后调用with内的逻辑, 最后执行 __exit__ 做退出处理, 并且, 即使出现异常也能正常退出

filter的用法

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

image.png

一行作判断

当条件满足时, 返回的为等号后面的变量, 否则返回else后语句

image.png

装饰器之单例

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

image.png

staticmethod装饰器

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

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

  • classmethod装饰器, 类方法(给人感觉非常类似于OC中的类方法), 其中第一个隐式参数为

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

  • image.png

收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

版主推荐

    共有0条评论

      • 课课家运营团队
      • 酸酸~甜甜
      • Mr ken
      • YUI
      • cappuccino
      • mr jack
      • IT宅男
      • Mright
      • 课课家技术团队1
      • 选择版块:

      • 标题:

      • 内容

      • 验证码:

      • 标题:

      • 内容

      • 选择版块:

      移动帖子x

      移动到: