Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python2.7中赋值运算符的含义_Python_Python 2.7 - Fatal编程技术网

python2.7中赋值运算符的含义

python2.7中赋值运算符的含义,python,python-2.7,Python,Python 2.7,我做了以下工作: a=12345 我试图理解这句话的意思。请回答以下问题 a指向内存地址12345 (对/错) 如果我这样做,b=12345。然后b也指向12345的回忆录地址 (对/错) 我已经读到12345的ref计数在b指向它之后应该增加1。 (对/错) 如何检索12345的内存地址。我想确认a和b都指向12345的地址。请澄清 我尝试使用id函数(它只显示相同的内存位置) “a指向内存地址12345(真/假)” 对 “如果我做了b=12345。那么b还指向12345的回忆录地址(真/假

我做了以下工作:

a=12345
我试图理解这句话的意思。请回答以下问题

  • a指向内存地址12345 (对/错)

  • 如果我这样做,b=12345。然后b也指向12345的回忆录地址 (对/错)

  • 我已经读到12345的ref计数在b指向它之后应该增加1。 (对/错)

  • 如何检索12345的内存地址。我想确认a和b都指向12345的地址。请澄清

  • 我尝试使用id函数(它只显示相同的内存位置)
  • “a指向内存地址12345(真/假)”

  • “如果我做了b=12345。那么b还指向12345的回忆录地址(真/假)”

    可能。如果您分配了
    b=a
    ,则
    b
    将指向与
    a
    相同的内存位置。对于
    b=12345
    ,答案未知:内存中可能有多个
    12345

  • “我已经了解到,在b指向12345后,其参考计数应增加1。(真/假)”

    如果
    a
    b
    指向同一位置,则为True:见上文

  • “如何检索12345的内存地址。我想检查a和b是否都指向12345的地址。请澄清。”

    要检查
    a
    b
    是否指向同一内存位置,请使用
    is
    ,如
    a is b
    。例如,在以下情况中,
    a
    b
    指向不同的内存位置:

    >>> a = 12345
    >>> b = 12345
    >>> a is b
    False
    
    相比之下,在以下情况下,它们指向相同的位置:

    >>> a = 1
    >>> b = 1
    >>> a is b
    True
    

  • python创建了一个名为a、值为12345的变量。先生,我已经知道你说了什么。我的问题仍然没有答案。请阅读本文末尾的引用。可能是重复的,你对内存地址和指针很感兴趣。Pyhon不处理这些。另外,python的不同实现可能会(并且会!)以不同的方式处理这些事情。感谢您的明确解释。关于您的评论“答案未知:内存中可能有多个12345副本。”。我们可以在内存中有多个相同整数的副本吗?@fsociety是。例如,上面包含的结果显示
    a is b
    12345
    @John1024的情况下返回False为什么
    a is b==True
    a=1
    b=1
    时,而不是在12345时返回False?@Matthias,如果我运行相同的代码non-交互地说,12345的
    True
    也很混乱。
    a
    只是一个名称。它根本不指向内存地址。请参阅。
    id(obj)
    返回对象的地址只是CPython的一个实现细节,与名称绑定无关。