有默认值的Python构造函数?

2024-09-27 17:37:14 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我的任务是创建一个具有'name'和'fuel'属性的Ship类,名称的默认值应该是“Enterprise”,而fuel的默认值应该是0。我必须创建一个没有参数的对象,每一个参数都有。唯一不起作用的是只有燃料的那个,我不知道为什么。在

我的代码是:

class Ship(object):

    def __init__(self, name = "Enterprise", fuel = 0):
        self.name = name
        self.fuel = fuel

    def status(self):
        if self.fuel < 0:
            self.fuel = 0
        print self.name, "\nFuel:", self.fuel, "\n"

#main

ship1 = Ship()
ship1.status()
ship2 = Ship("Space Ship1")
ship2.status()
ship3 = Ship(10)
ship3.status()
ship4 = Ship("Space Ship2", 10)
ship4.status()

它输出的是:

^{pr2}$

第三种方法是将燃料打印为名称,并将燃料默认为0,这是不对的。我怎样才能修好它?在


Tags: nameself名称参数defstatusspaceenterprise
1条回答
网友
1楼 · 发布于 2024-09-27 17:37:14

ship3 = Ship(10)中,第一个参数10是船名。在

您可能需要使用ship3 = Ship(fuel=10)。在


不直接相关,但很重要。请记住,如果您使用可变对象作为默认参数(在您的示例中没有这样做),那么这些参数只计算一次,而不是每次调用。在

相关问题 更多 >

    热门问题