Python不要错过的一些小技巧.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Python那些一不注意就会错过的小技巧(一) 小二在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来。 现在已经积攒了一些了,最近打算整理一波,发出来给大家补补。一篇 只分享五个,有时间了就整理。 省略号也是对象 ... 这是省略号,在Python 中,一切皆对象。它也不例外。在Python 中, 它叫做Ellipsis 。在Python 3 中你可以直接写…来得到这玩意。 而在2中没有…这个语法,只能直接写Ellipsis来获取 它转为布尔值时为真 最后,这东西是一个单例 这东西有啥用呢?据说它是Numpy 的语法糖,不玩Numpy 的人,可 以说是没啥用的。 在网上只看到这个用… 代替pass ,稍微有点用,但又不是必须使 用的。 类的首字母不一定是大写 在正常情况下,我们所编写的所见到的代码,好像都默许了类名首字母 大写,而实例用小写的这一准则。但这并不是强制性的,即使你反过来 的也没有关系。 但有一些内置的类,首字母都是小写,而实例都是大写。 比如bool 是类名,而True , False 是其实例;比如ellipsis 是类名, Ellipsis 是实例;还有 int , string , float , list , tuple , diet 等一系列 数据类型都是类名,它们都是小写。 增量赋值的性能更好 诸如+=和*=这些运算符,叫做增量赋值运算符。这里使用用+二 举 例,以下两种写法,在效果上是等价的 +=其背后使用的魔法方法是—iadd_,如果没有实现这个方法则会退 而求其次,使用_add, 这两种写法有什么区别呢? 用列表举例a += b ,使用__add__的话就像是使用了 a.extend(b), 如 果使用_add_ 的话,则是a = a+b,前者是直接在原列表上进行扩展, 而后者是先从原列表中取出值,在一个新的列表中进行扩展,然后再将 新的列表对象返回给变量,显然后者的消耗要大些。 所以在能使用增量赋值的时候尽量使用它。 and和or的取值顺序 and和or是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来 做判断,很少用它来取值。 如果一个or表达式中所有值都为真,Pytho n 会选择第一个值,而and 表达式则会选择第二个。 如何修改解释器提示符 这个当做今天的一个小彩蛋吧。应该算是比较冷门的,估计知道的人很 少了吧。 正常情况下,我们在 终端下 执行Python 命令是这样的 你是否想过 和… 这两个提示符也是可以修改的呢? Python那些一不注意就会错过的小技巧(二) 默认参数最好不为可变对象 函数的参数分三种 ?可变参数 ?默认参数 *关键字参数 这三者的具体区别,和使用方法在廖雪峰的教程里会详细的解释。这 里就不搬运了。 今天要说的是,传递默认参数时,新手很容易踩雷的一个坑。 先来看一个示例 在这里,你可以暂停一下,思考一下会输出什么? 思考过后,你的答案是否和下面的一致呢 如果是,那你可以跳过这部分内容,如果不是,请接着往下看,这里来 分析一下。 Python 中的def语句在每次执行的时候都初始化一个函数对象,这 个函数对象就是我们要调用的函数,可以把它当成一个一般的对象,只 不过这个对象拥有一个可执行的方法和部分属性。 对于参数中提供了初始值的参数,由于Python 中的函数参数传递的是 对象,也可以认为是传地址,在第一次初始化def的时候,会先生成 这个可变对象的内存地址,然后将这个默认参数item_list 会与这个内 存地址绑定。 在后面的函数调用中,如果调用方指定了新的默认值,就会将原来的默 认值覆盖。如果调用方没有指定新的默认值,那就会使用原来的默认值。 弔一次调用时会执丫亍初始仏生成I]的内存地址杲匸2308700B4744 第二次调用时』指走了新的默认对象(230,将原来的覆盖,就像压栈”一样,在囲数豊 第三次调用时,itemjist的默认兹数还是指向2830870084744 (因九上一次调用已经将新对象的引用弹社 参数的引用顺序从上往下2B308742119122B308700S47442^^0370084744283087O0S4744Item iKtitemjistitem list第 次凋用[ 参数的引用顺序 从上往下 2B30874211912 2B308700S4744 2^^0370084744 283087O0S4744 Item iKt itemjist item list 第 次凋用 [第二师用 [第三次凋用 个人理解的记忆方法,不代表官方,点击查看大图 访问类中的私有方法 大家都知道,类中可供直接调用的方法,只有公有方法(protected 类 型的方法也可以,但是不建议)。也就是说,类的私有方法是无

文档评论(0)

niupai11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档