Are python variables pointers? or else what are they?

前端 未结 9 2031
借酒劲吻你
借酒劲吻你 2020-11-22 07:01

Variables in Python are just pointers, as far as I know.

Based on this rule, I can assume that the result for this code snippet:

i = 5
j = i
j = 3          


        
9条回答
  •  暖寄归人
    2020-11-22 07:53

    Variables are not pointers. When you assign to a variable you are binding the name to an object. From that point onwards you can refer to the object by using the name, until that name is rebound.

    In your first example the name i is bound to the value 5. Binding different values to the name j does not have any effect on i, so when you later print the value of i the value is still 5.

    In your second example you bind both i and j to the same list object. When you modify the contents of the list, you can see the change regardless of which name you use to refer to the list.

    Note that it would be incorrect if you said "both lists have changed". There is only one list but it has two names (i and j) that refer to it.

    Related documentation

    • Execution Model - Naming and Binding

提交回复
热议问题