Может ли кто-нибудь сказать мне понятным для новичков способом, почему я не могу напечатать название молекулы (здесь, в данном случае, «NaCl»)? если я заменю return Molecule([self, other])
на return Molecule([self.label, other.label])
, мой код будет работать и выдает ожидаемый результат, но я хочу передавать экземпляры, а не атрибуты. вот мой код:
class Atom:
def __init__(self, label):
self.label = label
def __add__(self, other):
return Molecule([self, other])
class Molecule:
def __init__(self, atoms):
if type(atoms) is list:
self.atoms = atoms
def __repr__(self):
lol = ''
for i in self.atoms:
lol += i
return lol
sodium = Atom("Na")
chlorine = Atom("Cl")
salt = Molecule([sodium, chlorine])
salt = sodium + chlorine
print(salt)
вот изображение упражнения: моя проблема