Вы не можете создавать такие функции, как эта, но вы можете повторно использовать ту же функцию и просто предоставить «имя ресурса» в качестве дополнительного ввода:
def resource(account, res):
"""Prints the resource 'res' from acccount 'account'"""
with open('accountdetails.py', 'r') as file:
accdets = json.load(file)
rss_value = accdets[account][res]
print(rss_value)
rss = ['food', 'wood', 'stone', 'iron', 'gold']
for what in rss:
resource("account_3", what) # this will print it
Недостаток:
- вы загружаете файл 5 раз
- вы создаете JSON 5 раз
Было бы лучше сделать загрузку и создание объекта только один раз:
# not sure if it warrants its own function
def print_resource(data, account, res):
print(data[account][res])
# load json from file and create object from it
with open('accountdetails.py', 'r') as file:
accdets = json.load(file)
rss = ['food', 'wood', 'stone', 'iron', 'gold']
for what in rss:
print_resource(accdets, "account_3", what)