这是我创建两个类的代码。首先,我通过参数创建电子邮件;第二,我通过属性创建电子邮件。当我手动更改属性时,它们都显示不更新电子邮件的相同结果?我在这里错过了什么?
class Nam:
def __init__(self, first, last):
self.first = first
self.last = last
self.email = first + "." + last + "@gmail.com"
e = Nam("Ridhi","Shah")
print(e.first)
e.email雷吉
Ridhi.Shah@gmail.com
e.first = "Neha"
print(e.first)
e.email尼哈
Ridhi.Shah@gmail.com
Second Class
class Nam2:
def __init__(self, first, last):
self.first = first
self.last = last
# This is the line different from first class
self.email = self.first + "." + self.last + "@gmail.com"
e2 = Nam2("Nidhi","Shah")
print(e2.first)
e2.email尼迪
Nidhi.Shah@gmail.com
e2.first = "Sneha"
print(e2.first)
e2.email斯尼哈
Nidhi.Shah@gmail.com
这节课还在给尼迪上课。即使在我用了赛尔夫之后。
发布于 2022-10-12 00:18:42
我认为您希望电子邮件是一个属性,每次使用时都要重新计算,而不是一个不变的值。
class Nam:
def __init__(self, first, last):
self.first = first
self.last = last
@property
def email(self):
return self.first + "." + self.last + "@gmail.com"https://stackoverflow.com/questions/74035108
复制相似问题