그래서 저는 'name'과 'fuel'속성을 가진 Ship 클래스를 작성합니다. 이름은 기본값 "Enterprise"를 가져야하고 연료 값은 기본값 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()
그리고 여기가 출력 무슨이다 :
Enterprise
Fuel: 0
Space Ship1
Fuel: 0
10
Fuel: 0
Space Ship2
Fuel: 10
세 번째는 이름과 연료를 인쇄 오른쪽 아닌 0으로 연료를 불이행된다. 어떻게 해결할 수 있습니까?
@Hyperboreus가 지적했듯이 생성자의 매개 변수에 값을 명시 적으로 지정할 수 있습니다. 지정하지 않으면 왼쪽에서 오른쪽으로 할당되고 오른쪽에 나머지 모든 것에 기본값이 사용됩니다. – CoryKramer