Я пытаюсь написать страницу простого создания персонажа в python. Мне нужен вариант для пересчета. Проблема в том, что после обновления страницы статистика остается неизменной. Ниже мой код:Random.randint() не работает после обновления.
Views.py
from my import Character
...
def create_character():
characterform = CharacterForm()
if request.method == 'GET':
hero = Character()
hero.gen_stat()
return render_template('create_character.html', hero = hero, form = characterform)
my.py
class Character():
def __init__(self):
self.attack = 0
self.defense = 0
self.hp = 0
self.ini = 0
def gen_stat(self,attack = randint(0,10), defense = randint(0,10), hp = randint(10,20), ini = randint(0,5)):
self.attack = attack
self.defense = defense
self.hp = hp
self.ini = ini
сейчас я учусь питона, так Propably я делаю что-то неправильно. Странно то, что, если я обновляюсь через несколько минут, статистика меняется, возможно, это связано с кешированием?
Пожалуйста, помогите мне решить эту проблему.
Повторение привело вас использовать посторонние пробела для выравнивания, рассмотрит вспомогательную функцию 'возврата пары если параметр не является ничем другим randint (0, 10) '. –
Я бы использовал 'randint (0, 10), если атака - это еще не атака и т. Д., Чтобы избавиться от' not', но я бы не использовал для этого вспомогательную функцию. Это не увеличило бы удобочитаемость, и пока четыре линии останутся вместе, риск частичного исправления ошибок (то есть только в одном из них) этого удвоения кода ограничен. – Alfe
Может быть так: 'для поля в '' атаке ',' защите ',' hp ',' ini '):' 'original = locals() [field]' 'setattr (self, field, randint (0, 10), если оригинал не является оригинальным оригиналом) ' – Alfe