擅长:python、mysql、java
<p>如果您想要此行为,您需要将<code>email</code>转换为<a href="https://docs.python.org/3/library/functions.html?highlight=property#property" rel="nofollow noreferrer">^{<cd2>}</a>(并且您可能应该对<code>fullname</code>执行相同的操作):</p>
<pre><code>class Employee:
def __init__(self, first, last, pay):
self.first = first
self.last = last
self.pay = pay
@property
def email(self):
return self.first + "." + self.last + "@company.com"
# return f"{self.first}.{self.last}@company.com"
@property
def fullname(self):
return "{} {}".format(self.first, self.last)
# return f"{self.first} {self.last}"
</code></pre>
<p>这将如预期的那样起作用:</p>
<pre><code>emp_1 = Employee('Micheal', 'scoot', 50000)
emp_1.last = 'Scott'
print(emp_1.email) # -> Micheal.Scott@company.com
print(emp_1.fullname) # now without parentheses! -> Micheal Scott
</code></pre>
<p>在原始代码中,在构造函数中指定<code>self.email</code>。这样,如果您在之后更改<code>self.last</code>,它将不会得到更新</p>