我的代码目前看起来像这样:
class Employee:
def __init__(self, first, last):
self.first = first
self.last = last
self.email = first + '.' + last + '@email.com'
def email(self):
return '{}.{}@email.com'.format(self.first, self.last)
def fullname(self):
return '{} {}'.format(self.first, self.last)
emp_1 = Employee('John', 'Smith')
emp_1.first = 'Jim'
print(emp_1.first)
print(emp_1.email())
print(emp_1.fullname())
我输出的结果是:
Jim
Traceback (most recent call last):
File "/home/djpoland/python-files/test.py", line 19, in <module>
print(emp_1.email())
TypeError: 'str' object is not callable
我知道可以通过删除self.email或更改email函数的名称来解决此问题。但是,为什么变量名和函数不能具有相同的名称?这只是Python标准惯例还是出于某些内部原因导致此问题?我尝试在谷歌上搜索原因,但找不到任何信息。