필자가 작성중인 Python 게임에서 두 클래스가있다. ShipType 및 Ship. Ship 객체는 고유 한 이름, 나이, 재고 등이있는 특정 우주선을 나타냅니다. ShipType 객체는 선박의 '선'을 나타냅니다 (Mazda Protege는 자동차의 '선') 해당 유형의 선박에 대한 통계, Kelley Bluebook In 우주 가격 등Python 3에서 속성을 복사하는 좀 더 우아한 방법
모든 Ship-s가 ShipType에서 파생되어야하므로 Ship을위한 생성자는 ShipType을 인수로 사용합니다. 즉, 생성자는 다음과 같습니다 : 당신이 볼 수 있듯이,이 생성자에서 무슨 일이 일어나고 있는지의 대부분은 단지 자체에 전달 된 개체에서 동일 이름의 속성을 복사하는
...
def __init__(self,theshiptype):
if not isinstance(theshiptype,ShipType):
raise TypeError
self.name=theshiptype.name
self.inventory=Inventory(theshiptype.invslots)
self.maxhp=theshiptype.maxhp
self.thrust=theshiptype.thrust
self.ftlspeed=theshiptype.ftlspeed
...
. 내가 궁금해하는 건, 이것을 할 수있는 더 짧은 방법이 있을까?
선박에 있어서는 안되는 ShipType에 몇 가지 속성이 있다는 사실에 주목할 가치가 있습니다.