Python Random.randint()在刷新后不工作。

Python Random.randint()在刷新后不工作。,python,flask,Python,Flask,我试图用python编写一个简单的字符创建页面。我想要重新掷骰的选项。问题是,刷新页面后,统计数据保持不变。下面是我的代码: Views.py from my import Character ... def create_character(): characterform = CharacterForm() if request.method == 'GET': hero = Character() hero.gen_stat() return rende

我试图用python编写一个简单的字符创建页面。我想要重新掷骰的选项。问题是,刷新页面后,统计数据保持不变。下面是我的代码:

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)
我的宝贝

我现在正在学习python,很可能我做错了什么。奇怪的是,如果我在几分钟后刷新,统计数据就会改变,所以可能与缓存有关


请帮我解决这个问题。

默认参数只计算一次(创建函数时)

按如下方式更换发电机统计数据:

def gen_stat(self, attack=None, defense=None, hp=None, ini=None):
    self.attack  = randint(0, 10) if attack  is None else attack
    self.defense = randint(0, 10) if defence is None else defense
    self.hp      = randint(0, 10) if hp      is None else hp
    self.ini     = randint(0, 10) if ini     is None else ini
顺便说一句,根据:

在以下情况下,避免使用多余的空格:

  • 赋值(或其他)运算符周围有多个空格,以使其与另一个运算符对齐

    是:

    x = 1
    y = 2
    long_variable = 3
    
    x             = 1
    y             = 2
    long_variable = 3
    
    否:

    x = 1
    y = 2
    long_variable = 3
    
    x             = 1
    y             = 2
    long_variable = 3
    

默认参数仅计算一次(创建函数时)

按如下方式更换发电机统计数据:

def gen_stat(self, attack=None, defense=None, hp=None, ini=None):
    self.attack  = randint(0, 10) if attack  is None else attack
    self.defense = randint(0, 10) if defence is None else defense
    self.hp      = randint(0, 10) if hp      is None else hp
    self.ini     = randint(0, 10) if ini     is None else ini
顺便说一句,根据:

在以下情况下,避免使用多余的空格:

  • 赋值(或其他)运算符周围有多个空格,以使其与另一个运算符对齐

    是:

    x = 1
    y = 2
    long_variable = 3
    
    x             = 1
    y             = 2
    long_variable = 3
    
    否:

    x = 1
    y = 2
    long_variable = 3
    
    x             = 1
    y             = 2
    long_variable = 3
    

重复导致你使用额外的空白来对齐,如果助手不是RANTEN(0, 10),请考虑帮助函数<代码>返回参数。我将使用<代码> RANTET(0, 10),如果攻击没有其他攻击< /代码>等,以消除<代码> < <代码> >,但我不会为此使用辅助函数。它不会增加可读性,只要这四行代码保持在一起,代码部分错误修复(即仅其中一行)的风险是有限的。可能是这样的:
对于字段in('attack'、'defense'、'hp'、'ini'):
original=locals()[field]
setattr(self,field,randint(0,10)如果原件不是其他原件)< /COD>重复导致您使用外部空白来对齐,请考虑辅助函数<代码>返回参数,如果PARAM不是非其他RANTET(0, 10)< /代码>,我将使用<代码> RANTEN(0, 10)。如果攻击是None-other攻击
等,以摆脱
not
,但我不会为此使用帮助函数。它不会增加可读性,只要这四行代码保持在一起,代码部分错误修复(即仅其中一行)的风险是有限的。可能是这样的:
对于字段in('attack'、'defense'、'hp'、'ini'):
original=locals()[field]
setattr(self,field,randint(0,10)如果原件不是其他原件)