Я пишу очень простую текстовую игру Escape, чтобы практиковать основы, которые я узнал до сих пор. Я просто запускаю его в онлайн -редакторе. У меня были проблемы с добавлением объектов класса в глобальный список, и я узнал, что это потому, что я инициализировал объекты, а затем добавил их в список. После переписывания, чтобы объекты были добавлены в список во время их инициализации, это сработало. Почему? (Игра еще не сделана, как вы увидите, я просто хочу захватить то, что происходит, прежде чем я продолжу.) < /P>
Оригинал, не работает: < /p>
class items():
def __init__(self, item, canOpen):
self.item = item
self.canOpen = canOpen
def pickup():
choice = input(f"There's some stuff on this shelf: {freeItems} - What will you pick up?")
#When freeItems is called, it displays `[, ]`
if choice not in freeItems:
print(f"What? There's no {choice} here. Choose again.")
#This runs no matter what I input, presumably because of the calling issue.
choice = input()
else:
playerInventory.append(choice)
freeItems.remove(choice)
print(f"""{choice} added to inventory!
These items remain on the shelf: {freeItems}
Let's try opening the door.""")
key = items("key",True)
flashlight = items("flashlight",False)
mirror = items("mirror",False)
freeItems = [key, flashlight, mirror]
playerInventory = []
playerName = input("Hi there! What's your name?")
print(f"Hi, {playerName}. So, bad news: you're trapped in this room. Good news: Your trusty disembodied narrator is here to help!")
pickup()
< /code>
новый, работа: < /p>
freeItems = []
playerInventory = []
class items():
def __init__(self, item, canOpen):
self.item = item
self.canOpen = canOpen
freeItems.append(self.item) #This is the new code that made it work
def pickup():
choice = input(f"There's some stuff on this shelf: {freeItems} - What will you pick up?")
if choice not in freeItems:
print(f"What? There's no {choice} here. Choose again.")
choice = input()
else:
playerInventory.append(choice)
freeItems.remove(choice)
print(f"""{choice} added to inventory!
These items remain on the shelf: {freeItems}
Let's try opening the door.""")
key = items("key",True)
flashlight = items("flashlight",False)
mirror = items("mirror",False)
playerName = input("Hi there! What's your name?")
print(f"Hi, {playerName}. So, bad news: you're trapped in this room. Good news: Your trusty disembodied narrator is here to help!")
pickup()
< /code>
В исходном коде я попытался добавить существующие объекты класса в глобальный список. Я ожидал, что объекты будут просто в списке, как будто я добавил в нее обычную переменную. На самом деле произошел этот вывод, когда был назван список: [, ]
и я впоследствии не смог использовать список для предполагаемой цели. Это сработало, как и предполагалось. Я просто не понимаю, в чем разница в программе.
Я пишу очень простую текстовую игру Escape, чтобы практиковать основы, которые я узнал до сих пор. Я просто запускаю его в онлайн -редакторе. У меня были проблемы с добавлением объектов класса в глобальный список, и я узнал, что это потому, что я инициализировал объекты, а затем добавил их в список. После переписывания, чтобы объекты были добавлены в список во время их инициализации, это сработало. Почему? (Игра еще не сделана, как вы увидите, я просто хочу захватить то, что происходит, прежде чем я продолжу.) < /P> Оригинал, не работает: < /p> [code]class items(): def __init__(self, item, canOpen): self.item = item self.canOpen = canOpen
def pickup(): choice = input(f"There's some stuff on this shelf: {freeItems} - What will you pick up?") #When freeItems is called, it displays `[, ]` if choice not in freeItems: print(f"What? There's no {choice} here. Choose again.") #This runs no matter what I input, presumably because of the calling issue. choice = input() else: playerInventory.append(choice) freeItems.remove(choice) print(f"""{choice} added to inventory! These items remain on the shelf: {freeItems} Let's try opening the door.""")
playerName = input("Hi there! What's your name?") print(f"Hi, {playerName}. So, bad news: you're trapped in this room. Good news: Your trusty disembodied narrator is here to help!")
class items(): def __init__(self, item, canOpen): self.item = item self.canOpen = canOpen freeItems.append(self.item) #This is the new code that made it work
def pickup(): choice = input(f"There's some stuff on this shelf: {freeItems} - What will you pick up?") if choice not in freeItems: print(f"What? There's no {choice} here. Choose again.") choice = input() else: playerInventory.append(choice) freeItems.remove(choice) print(f"""{choice} added to inventory! These items remain on the shelf: {freeItems} Let's try opening the door.""")
playerName = input("Hi there! What's your name?") print(f"Hi, {playerName}. So, bad news: you're trapped in this room. Good news: Your trusty disembodied narrator is here to help!")
pickup() < /code> В исходном коде я попытался добавить существующие объекты класса в глобальный список. Я ожидал, что объекты будут просто в списке, как будто я добавил в нее обычную переменную. На самом деле произошел этот вывод, когда был назван список: [, ] [/code] и я впоследствии не смог использовать список для предполагаемой цели. Это сработало, как и предполагалось. Я просто не понимаю, в чем разница в программе.
Я пишу очень простую текстовую игру Escape, чтобы практиковать основы, которые я узнал до сих пор. Я просто запускаю его в онлайн -редакторе. У меня были проблемы с добавлением объектов класса в глобальный список, и я узнал, что это потому, что я...
Когда я запускаю свою программу, она раздражается:
Значение
= позиция + int(hazards ) ~~~~~~~^^^ TypeError: объект 'int' не подлежит подписке Как бы я сделал, чтобы список опасностей работал внутри функции trap?
liledingcontroller.cs:
public IActionResult Create()
{
CreateListingViewModel model = new()
{
AllCities = new SelectList(_addressRepo.AllCities()),
AllItems = new SelectList(_itemRepo.FindAll(), Id , Name )
};
return View(model);
}