zoukankan      html  css  js  c++  java
  • python之name binding

    python之name binding

    1. 名字

      名字是对一个对象的称呼,一个对象可以只有一个名字,也可以没有名字或取多个名字。但对象自己却不知道有多少名字,叫什么,只有名字本身知道它所指向的是个什么对象。给对象取一个名字的操作叫作命名,python将赋值语句认为是一个命名操作(或者称为名字绑定)。

      名字在一定的名字空间内有效,而且唯一,不可能在同一个名字空间内有两个或更多的对象取同一名字。

      让我们再来看看本篇的第一个例子:i = 1。在python中,它有如下两个含义:
     * 创建一个值为1的整型对象
     * "i"是指向该整型对象的名字(而且它是一个引用)
     
    2. 绑定
      如上所讲的,绑定就是将一个对象与一个名字联系起来。更确切地讲,就是增加该对象的引用计数。众所周知,C++中一大问题就是内存泄漏 -- 即动态分配的内存没有能够回收,而解决这一问题的利器之一就是引用计数。python就采用了这一技术实现其垃圾回收机制。

    python中的所有对象都有引用计数。

    i=i+1

    * 这创建了一个新的对象,其值为i+1。
    * "i"这个名字指向了该新建的对象,该对象的引用计数加一,而"i"以前所指向的老对象的
      引用计数减一。
    * "i"所指向的老对象的值并没有改变。
    * 这就是为什么在python中没有++、--这样的单目运算符的一个原因。

  • 相关阅读:
    SysTick—系统定时器
    FreeRtos——单任务
    binutils工具集之---objdump
    对连接器的思考
    数组和指针并不相同
    typedef可以成为你的朋友
    gcc,一个神奇的编译器
    FreeRtos——移植
    Makefile 13——理解make的解析行为
    Makefile 12——改善编译效率
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3363479.html
Copyright © 2011-2022 走看看