여기에 슈퍼 클래스가 서브 클래스를 인쇄하고 정보에 대한 액세스를 갖는문제 제대로
class Item:
def __init__(self, name, desc, usable, value):
self.name = name
self.desc = desc
self.usable = usable
self.value = value
def __str__(self):
return "{}\n=====\n{}\nValue: {}\n".format(self.name, self.desc, self.usable, self.value)
그리고 (다른 사람의 사이에서)이 서브 클래스 :
class HPot(Item):
def __init__(self):
super().__init__(desc="Heals for 5 HP.",
name="Health Potion",
usable=0,
value=3)
IHpot = HPot
이 그리고 그것은 Inv
라는 목록입니다 :
Inv = [IHpot]
그리고 내가 print(Inv)
일 때, 이것은 명백한 Y :
[<class 'items.HPot'>]
그래서 나는이 코드를 만든 :
def openinv():
print("Your inventory:")
print(', '.join(Inv))
print("----------")
# [...]
을 그리고 이런 :
Your inventory:
Traceback (most recent call last):
File "C:/Users/Bernardo/PycharmProjects/EndlessDungeon/inventory.py", line
29, in <module>
openinv()
File "C:/Users/Bernardo/PycharmProjects/EndlessDungeon/inventory.py", line 18, in openinv
print(', '.join(Inv))
TypeError: sequence item 0: expected str instance, type found
Process finished with exit code 1
내가 return "{}\n=====\n{}\nValue: {}\n".format(self.name, self.desc, self.usable, self.value)
이 (가 Item
슈퍼 클래스에있다) 도움이 될 것으로 생각했지만, 온라인으로 시도하거나 검색 한 항목이 도움이되지 않았습니다. Health Potion
처럼 인쇄하고 여전히 'name, desc, usable,
'등의 클래스에 액세스 할 수 있습니까? 어떻게해야합니까?
클래스 자체 또는 클래스 인스턴스를 인쇄하려고합니까? – Elazar
나는 thess 용어에별로 좋지는 않지만, 내가 원하는 것은 클래스 자체를 인쇄하는 것이라고 생각한다. 마찬가지로 .usable, .value 등등에 접근 할 수있는 동안 클래스의 .name을 출력하십시오. – Bernardozomer
이들은 클래스의 속성이 아니며 클래스에 존재하지 않습니다. 그것들은 클래스의 인스턴스의 속성입니다. – Elazar