作者回复: 好办法!
作者回复: 其实你可以模拟retry的方式,把写入数据的功能封装到自己的retry里面。 try except简单来说是捕获异常,也就是发生了指定类型或者全部类型的异常可以用它来触发你想做的逻辑处理,而raise是默认的异常不满足你的需求,需要编写自己的异常的语句。例如try except可以捕获网络连接超时的timeout异常,但是如果用户反复输入错误密码,你也想当做异常捕获,是没有特定的异常捕获的,这时候你可以通过raise产生自己定义的这种异常,进行捕获并处理。
作者回复: 网上最多的演示就是取奇数的例子了,分别用filter和map看看返回值体会一下他们的差别 >>> list(filter(lambda x:x%2 == 1 ,range(1, 10))) [1, 3, 5, 7, 9] >>> list(map(lambda x:x%2 == 1 ,range(1, 10))) [True, False, True, False, True, False, True, False, True]
作者回复: 字典是无序的,是正常情况
作者回复: 因为filter函数返回的数据类型,叫做迭代器。 顾名思义,迭代器返回的对象,需要一个一个的取出来(也就是名词迭代),而演示代码中,我们需要filter过滤之后,全部取出来,在没有学习循环这个概念之前,我们只好退而求其次的全部取出来。所以我使用了list()函数,将迭代器转换为你熟系的列表类型。 所以不添加list不能执行是不准确的,我只是根据需求做了类型转换
作者回复: 这个报错是 把字典“当做”函数用,但是字典又不能执行所以报了这个错误 如: dict1={'key':'value'} dict1('key') 要使用[] 不应该使用()
作者回复: 是pycharm自动补全的
作者回复: map() reduce() filter() 等这类 函数的返回值有个统一的名字,叫迭代器,对于这类函数的返回可以是用 for in的形式一个一个值取,也可以使用list() 转换为列表取出来
作者回复: 我们使用python希望尽量能够将代码复用,那些经常使用的函数库就采用了python内置和标准库两种形式。 如果全部采用内置python在启动的时候需要相当长的时间,因此将最常用的放在python内部。也就是直接可以使用内建函数,还有较为常用的设置为标准库, 扩展的或者非官方提供的作为第三方库,下载安装后,可以import导入来使用
作者回复: 内建函数在官方文档有列出: https://docs.python.org/zh-cn/3.7/library/functions.html 如果你自己定义了函数刚好和内建函数同名,后面的调用会使用你的自建函数