Python 通过方法修改属性的值
我尝试创建一个属性来设置已售出的票数“set\u tickets\u selled”,然后创建一个属性来更改票数“increment\u tickets\u selled”,但当我尝试设置票数,然后调用方法“tickets\u selled”时,我一直收到一个错误 回溯最近的调用上次:文件 E:/WorWic/项目简介/第9章/大学田径部分 2.py,第29行,in athletics.tickets\u销售类型错误:“int”对象不可调用Python 通过方法修改属性的值,python,Python,我尝试创建一个属性来设置已售出的票数“set\u tickets\u selled”,然后创建一个属性来更改票数“increment\u tickets\u selled”,但当我尝试设置票数,然后调用方法“tickets\u selled”时,我一直收到一个错误 回溯最近的调用上次:文件 E:/WorWic/项目简介/第9章/大学田径部分 2.py,第29行,in athletics.tickets\u销售类型错误:“int”对象不可调用 我做错了什么?您的问题是,售出的门票既是一个属性,也是
我做错了什么?您的问题是,售出的门票既是一个属性,也是一个函数名。它获取属性并调用它,而不是函数。我建议将函数重命名为其他函数。您正在使用tickets\u selled变量覆盖ticks\u selled方法。换一个名字。例如,将变量更改为_tickets\u soldYou在同一对象上为两个不同的对象使用了tickets\u sell名称。别那么做,谢谢我都没意识到
class UniversityAthletics():
def __init__(self, university_name, sport):
self.name = university_name
self.sport = sport
self.tickets_sold = 10
def tickets_sold(self):
"""This just tells you how many tickets have been sold"""
print(str(self.tickets_sold) + " tickets have been sold")
def describe_athletics(self):
print(self.name.title() + " " + self.sport.title())
def in_season(self):
print(self.sport.title() + " is in season.")
def set_tickets_sold(self, numticket):
"""This sets the number of tickets that have been sold"""
self.tickets_sold = numticket
def increment_tickets_sold(self, moretickets):
"""This increments the number of tickets sold"""
self.tickets_sold += moretickets
athletics = UniversityAthletics('salisbury university', 'soccer')
athletics.set_tickets_sold(20)
athletics.tickets_sold()
athletics.increment_tickets_sold(500)
athletics.tickets_sold()