zoukankan      html  css  js  c++  java
  • python笔记6:模块

    6. 模块(一个 .py 文件称为一个模块Module)

    import 语句
    类似 _xxx 和 __xxx 这样的 函数/变量 是非公开的(private),不应该被直接引用
    函数定义: 外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。
    实例属性和类属性
    千万不要把实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性。

    @property装饰器 --简化代码,避免每个函数编写重复的代码 python 装饰模式--可对函数、方法或类进行装饰
    **案例1(不带参数的decorator,两层嵌套):

    import functools #导入functools包
    def log(func):
    @functools.wraps(func) #wrapper.__name__ = func.__name__ 
    def wrapper(*args, **kw): #wrapper可接收任意参数的调用
    print 'call %s():' % func.__name__ #在运行 func() 函数前打印一行日志
    return func(*args, **kw)
    return wrapper
    
    @log #等价于执行 now = log(now)
    def now(): #调用 now() 将执行在 log() 函数中返回的 wrapper() 函数
    print '2013-12-25

    **案例2(带参数的decorator,三层嵌套):

    import functools
    def log(text): #第一层嵌套
    def decorator(func): #第二层嵌套
    @functools.wraps(func)
    def wrapper(*args, **kw): #第三层嵌套
    print '%s %s():' % (text, func.__name__) #在运行 func() 函数前打印一行带参数的日志
    return func(*args, **kw)
    return wrapper
    return decorator
    
    @log('execute') #等价于执行 now = log('execute')(now)
    def now():
    print '2013-12-25'

    偏函数(Partial function): 结合默认参数理解
    --> 设置某些参数的默认值,并返回一个新的函数,之后调用这个新函数会更便于操作。
    案例对比:

    def int2(x, base=2): #传统方法
    return int(x, base)
    import functools #采用偏函数方法 int2 = functools.partial(int, base=2) #二进制转换

    __future__
    案例:在Python 2.7的代码中直接使用Python 3.x的除法,可以通过 __future__ 模块的 division 实现
    from __future__ import division

  • 相关阅读:
    jedis jedispool Redistemplate
    开箱一个docker
    JPA分页查询与条件分页查询
    基于token与基于服务器的身份认证
    uni-app第三方登陆-微信
    main.js中封装全局登录函数
    idea搭建可运行Servlet的Web项目[maven]
    什么是servlet?
    简单了解request与response
    颓废的三天
  • 原文地址:https://www.cnblogs.com/W-Yentl/p/7816767.html
Copyright © 2011-2022 走看看