了解python-FAQ

Posted JonPan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解python-FAQ相关的知识,希望对你有一定的参考价值。

python FAQ

参考: https://docs.python.org/zh-cn/3.7/faq/design.html#why-are-python-strings-immutable
  1. why python str is immutable?
    • 一个是性能:知道字符串是不可变的,意味着我们可以在创建时为它分配空间,并且存储需求是固定不变的。这也是元组和列表之间区别的原因之一,list是可变的,初始化建立的时候分配一定空间,当要添加元素时会根据一个算法来为其分配空间。
  2. 为什么必须在方法定义和调用中显示使用‘self‘
    • 更明显的显示出, 使用是方法或实例属性而不是局部变量。在c++中可以通过缺少局部变量声明来判断,c++和java中编码标准要求实例属性具有m_前缀,
      也是类似self这个显式性的语法特性。
    • 在派生类中重写基类的方法 c++ 必须使用::运算符, python则不用
    • 解决了变量赋值的语法问题: 为了python中的局部变量在函数体中赋值的变量赋值(并且没有明确声明为全局),就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,
      c++通过声明来做到这一点, python则用self来区分,即实例变量和局部变量存在两个不同命名空间中, 当使用self调用某个实例属性时, 无需搜索实例目录。

以上是关于了解python-FAQ的主要内容,如果未能解决你的问题,请参考以下文章

了解 BitTorrent 片段输出

VS中添加自定义代码片段——偷懒小技巧

Apollo Codegen 没有找到生成代码的操作或片段

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

与另一个片段通信的片段接口

有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]