第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以評估函數(shù)返回是否在列表中,否則返回默認值?

是否可以評估函數(shù)返回是否在列表中,否則返回默認值?

繁華開滿天機 2023-08-08 10:23:59
如果我有一個返回某個值的函數(shù),并且我只想在允許的列表中分配該值,否則使用默認值。假設(shè)我無法修改該功能。即這有效,但它調(diào)用該函數(shù)兩次。def some_func():    return 'foo'allowed_list = ['foo', 'bar']value = some_func() if some_func() in allowed_list else 'default'有沒有一種Python式的方法可以在一行中設(shè)置值而無需調(diào)用函數(shù)兩次?
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經(jīng)驗 獲得超6個贊

從 Python 3.8開始:

value = x if (x:=foo()) in allowed_list else 'default'


查看完整回答
反對 回復(fù) 2023-08-08
?
MM們

TA貢獻1886條經(jīng)驗 獲得超2個贊

如果您喜歡做一些過度的事情來完成簡單的任務(wù)(賦值表達式/海象運算符),請定義一個裝飾器來為您處理返回值:


allowed_list = ['foo', ]


def check_return_value(fn):

    def inner(*args, **kwargs):

        result = fn(*args, **kwargs)

        return result if result in allowed_list else 'default'


    return inner



# suppose this name is imported from somewhere else and you can't use @ syntax

def some_func():

    return 'boo'


some_func = check_return_value(some_func)


var = some_func()

print(var)  # prints "default"


查看完整回答
反對 回復(fù) 2023-08-08
?
蝴蝶刀刀

TA貢獻1801條經(jīng)驗 獲得超8個贊

只要您僅限于 Python 3.6 并且不能使用賦值表達式,您就可以為自己創(chuàng)建一個輔助函數(shù)來處理這個問題。


def some_func():

    return 'foo'


def default_if_invalid(value, allowed_values, default):

    return value if value in allowed_values else default


allowed_list = ['foo', 'bar']

value = default_if_invalid(some_func(), allowed_list, 'default')

None如果您始終檢查相同的允許值列表,或者如果您希望該方法在未提供默認值的情況下提供默認值(也許),則可以輕松修改此值。例如:


def default_if_invalid(value, default=None):

    allowed_list = ['foo', 'bar']

    return value if value in allowed_values else default


value = default_if_invalid(some_func()) # sets to None if not in list

value = default_if_invalid(some_func(), 'default') # specifies a default


查看完整回答
反對 回復(fù) 2023-08-08
  • 3 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號