Skip to main content
 首页 » 编程设计

python之具有相同名称的对象在python中引用不同的id

2025年05月04日20lyj

在下面的代码片段中,在第 1 行和第 2 行创建了两个名为 div 的对象。

  1. python如何区分在同一作用域下创建的两个div对象?

  2. 当 id() 应用于两个对象时,会为相似命名的对象显示两个不同的地址。为什么会这样?

def div(a,b): 
    return a/b 
 
 
print(id(div)) # id = 199......1640 ################################ line 1 
 
 
def smart_div(func): 
    def inner(a,b): 
        if a<b: 
            a,b=b,a 
        return func(a,b) 
    return inner 
 
 
a = int(input("Enter 1st: ")) 
b = int(input("Enter 2nd: ")) 
div = smart_div(div) 
print(id(div)) # id = 199......3224 ############################# line 2 
print(div(a,b))  

在像 C 这样的遗留语言中,不能在同一范围内创建两个同名的变量。但是,在 python 中,这条规则似乎并不适用。

请您参考如下方法:

在像 C 这样的语言中,您可以使用不同的值重命名变量。这就是您更新值的方式。在 C 中,它们必须具有相同的类型,因为 C 是一种静态类型语言。另一方面,Python 是动态类型的,这意味着它不跟踪类型。在程序中有一个表,其中名称与值相关联,当您将 div 定义为同一范围内的新值时,它只是覆盖该值,因为第二个 div 出现了之后。定义新的 div 值后,您将无法再访问函数 div。