是否可以区分 Python 中具有相同变量的两个对象?

Is it possible to differentiate between two objects that have the same variable in Python?

我将从共享代码开始。

import random

class Ball:
    def __init__(self, radius):
        self.radius = radius        

def radius():
    return random.randint(1, 10)

ball = Ball(radius())

ball = Ball(radius())

class Bag:
    def __init__(self, slots):
        self.slots = slots

bag = Bag([1, 2])

bag.slots[0] = ball

bag.slots[1] = ball

print(bag.slots[0].radius)

print(bag.slots[1].radius)

两个球对象看起来完全一样。不同之处在于半径,因为它是由我的 def radius() 函数随机生成的。我希望能够将第一个球放入包对象的第一个槽中,将第二个球放入第二个槽中。截至目前,这是目前编写的,这是不可能的。这是因为两个球对象都具有完全相同的变量“ball”。我可以通过将球的名称更改为 ball_1 和 ball_2 之类的名称来轻松解决此问题。 但是,我想保持变量名相同。有没有办法让 Python 在不更改名称的情况下了解哪个球是哪个,或者我只需要处理具有不同名称的球?

不确定你想用它去哪里,但你不需要 ball 变量:

import random

class Ball:
    def __init__(self, radius):
        self.radius = radius        

def radius():
    return random.randint(1, 10)

class Bag:
    def __init__(self, slots):
        self.slots = slots

bag = Bag([1, 2])

bag.slots[0] =  Ball(radius())

bag.slots[1] = Ball(radius())

print(bag.slots[0].radius)

print(bag.slots[1].radius)