Python 通过方法修改属性的值

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”对象不可调用 我做错了什么?您的问题是,售出的门票既是一个属性,也是

我尝试创建一个属性来设置已售出的票数“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()