《简明Python教程》之更多

传递元组

用法1:a, b = <some expression> 具有两个值的一个元组,使用一个元组可满足一个函数返回两个不同的值

>>> def get_error_details():
...     return (2, 'details')
...
>>> errnum, errstr = get_error_details()
>>> errnum
2
>>> errstr
'details'

用法2:Python 中交换两个变量的最快方法

>>> a = 5; b = 8
>>> a, b
(5, 8)
>>> a, b = b, a
>>> a, b
(8, 5)

特殊方法

用来模拟内置类型的某些行为
下面的表格列出了一些有用的特殊方法。
- __init__(self, ...)
这一方法在新创建的对象被返回准备使用时被调用。
- __del__(self)
这一方法在对象被删除之前调用(它的使用时机不可预测,所以避免使用它)
- __str__(self)
当我们使用 print 函数时,或 str() 被使用时就会被调用。
- __lt__(self, other)
当小于运算符(<)被使用时被调用。类似地,使用其它所有运算符(+、> 等等)时都会有特殊方法被调用。
- __getitem__(self, key)
使用 x[key] 索引操作时会被调用。
- __len__(self)
当针对序列对象使用内置 len() 函数时会被调用

assert 语句

如果不为真,则将抛出AssertionError

assert len(mylist) >= 1

装饰器

创建了一个 retry 装饰器,这样我可以将其运用到任何函数之中,如果在一次运行中抛出了任何错误,它就会尝试重新运行,直到最大次数 5 次,并且每次运行期间都会有一定的延迟。这对于你在对一台远程计算机进行网络调用的情况十分有用:

from time import sleep
from functools import wraps
import logging
logging.basicConfig()
log = logging.getLogger("retry")


def retry(f):
    @wraps(f)
    def wrapped_f(*args, **kwargs):
        MAX_ATTEMPTS = 5
        for attempt in range(1, MAX_ATTEMPTS + 1):
            try:
                return f(*args, **kwargs)
            except:
                log.exception("Attempt %s/%s failed : %s",
                              attempt,
                              MAX_ATTEMPTS,
                              (args, kwargs))
                sleep(10 * attempt)
        log.critical("All %s attempts failed : %s",
                     MAX_ATTEMPTS,
                     (args, kwargs))
    return wrapped_f


counter = 0


@retry
def save_to_database(arg):
    print("Write to a database or make a network call or etc.")
    print("This will be automatically retried if exception is thrown.")
    global counter
    counter += 1
    # 这将在第一次调用时抛出异常
    # 在第二次运行时将正常工作(也就是重试)
    if counter < 2:
        raise ValueError(arg)


if __name__ == '__main__':
    save_to_database("Some bad value")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简明python教程》.pdf是一本非常优秀的Python入门教程。这本教程简明的方式介绍了Python编程语言的基本概念和用法,适合初学者快速入门。 首先,教程首先介绍了Python的背景和特点。它是一种易于学习和使用的编程语言,具有动态类型和自动内存管理等特点,可以广泛应用于Web开发、数据科学、机器学习等领域。 接着,教程详细讲解了Python的基本语法和常用数据类型,如整数、浮点数、字符串和列表等。它循序渐进地介绍了变量、条件语句、循环结构和函数等基本概念,让读者能够了解基本的编程思维和方法。 此外,教程还介绍了Python的标准库和常用的第三方库。标准库包含了大量的模块和函数,可以实现文件操作、网络通信、GUI界面等功能,帮助读者快速实现各种应用需求。而第三方库则提供了多功能强大的模块,如NumPy、Pandas和Matplotlib等数据科学库,以及Django和Flask等Web框架,扩展了Python的应用范围。 最后,教程还提供了一些实例和练习,帮助读者巩固所学知识,并激发对编程的兴趣和创造力。 总之,《简明python教程》.pdf是一本值得推荐的Python入门教程。它的简明风格、清晰的讲解和丰富的实例,使得初学者能够快速掌握Python编程的基本技能,并为进一步学习和实践打下良好的基础。无论是想要学习编程基础知识,还是想要进一步探索Python语言的特性和应用,这本教程都是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值