簡體   English   中英

'NoneType' 和 'float' 的實例之間不支持 '>='

[英]'>=' not supported between instances of 'NoneType' and 'float'

我想運行我的代碼,但是,我不斷收到錯誤消息。 這是關於他們在其中輸入值的表單字段。 如果該值在特定范圍內,他們將獲得 1 歐元。 代碼是:

class Guess(Page):
    form_model = 'player'
    form_fields = ['guess']

    def is_displayed(self):
        return self.round_number == 2

    def vars_for_template(self):
        if self.player.guess >= 11.25 and self.player.guess <= 13.75:
            self.player.cumulative_guthaben = self.player.cumulative_guthaben + 1
        else:
            self.player.cumulative_guthaben = self.player.cumulative_guthaben

            return {
                'current_credit': self.player.cumulative_guthaben,
                'anzahlspieler': Constants.number_of_players,
                'round_number': self.round_number,}

我知道這是一個類型錯誤,但我沒有成功修復它

Here is a shorter Version of my Class: 
class Player(BasePlayer): 
guthaben = models.CurrencyField(initial=c(0)) 
cumulative_guthaben = models.CurrencyField() 
donation = models.FloatField(min=c(0)) 
earnedmoney = models.CurrencyField() 
frequency = models.StringField() 
rival = models.StringField() 
guess = models.FloatField(label="Your Guess:")

您會收到錯誤,因為在某些時候self.player.guess是 NoneType 並且它應該是 float 以將其與 float 進行比較。 您可以使用isinstance(i, type) 您不需要其他,因為您不會更改self.player.cumulative_guthaben的值。 但是您應該檢查代碼的 rest,為什么self.player.guess是 NoneType。 像這樣的東西:

class Guess(Page):
    form_model = 'player'
    form_fields = ['guess']
    def is_displayed(self):
        return self.round_number == 2

    def vars_for_template(self):
        if isinstance(self.player.guess, float):
            if (self.player.guess >= 11.25 and self.player.guess <= 13.75):
                self.player.cumulative_guthaben = self.player.cumulative_guthaben + 1
        return {
            'current_credit': self.player.cumulative_guthaben,
            'anzahlspieler': Constants.number_of_players,
            'round_number': self.round_number,}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM