如何声明不一定需要的 __init__ 变量

How to declare the __init__ variables that is not necessarily required

class Gathering(object):

    def __init__(self, date, spent1, spent2, spent3, spent4):
        """Return a gathering object whose date is declared """
        self.date = date
        self.spent1 = spent1
        self.spent2 = spent2
        self.spent3 = spent3
        self.spent4 = spent4
        self.spent_total = spent1+spent2+spent3+spent4

    def per_person(self):
        return self.spent_total/3

我做了一个简短的脚本,当我和我的朋友有一些聚会时,我可以很容易地计算出一个人的份量。我们通常会移动景点并花费不同的钱,但当晚我们去了多少个地方总是不同的。

所以我想使 spent1,2,3,4 变量不一定是必需的,我该怎么做?

您可以使用可变数量的参数:

class Gathering(object):
    def __init__(self, date, *args):
        """Return a gathering object whose date is declared """
        self.date = date
        self.spent = args
        self.spent_total = sum(args, 0)

    def per_person(self):
        return self.spent_total / 3.0

sent 包含值的元组。您可以像这样使用 class:

g1 = Gathering(date1, 1, 2, 3)
g2 = Gathering(date2, 2, 3)

等等。