如何优化kwargs.价值观():

2024-09-30 06:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个能接受任何夸尔格的类。你知道吗

class testcode():
    def check_values(**kwargs):
        if "Test1" in kwargs.values():
           return function1
        elif "Test2" in kwargs.values():
           return function2...
        ...
        else:
           return function20



test=testcode(Input1="Test1",Something="blablabla",Otherthing="blabalbalbalb2")

由于kwarg的个数不是固定的,我可能会写很多if/elif,我能用dict替换if/elif/else吗?你知道吗

更新: @deceze,我之所以忽略一些参数是因为我想模拟一些awsapi。例如,AWS S3使用

response = client.list_multipart_uploads(
    Bucket='string',
    Delimiter='string',
    EncodingType='url',
    KeyMarker='string',
    MaxUploads=123,
    Prefix='string',
    UploadIdMarker='string'
)

我想写一个类来模拟这个函数。当我测试时,我可以返回基于UploadIdMarker的值。你知道吗

class testcode():
    def list_multipart_uploads(**kwargs):
        if "Test1" in kwargs.values():
           return s3_string1
        elif "Test2" in kwargs.values():
           return s3_string2
        ...
        else:
           return s3_string100

test=testcode(Bucket='string',
    Delimiter='string',
    EncodingType='url',
    KeyMarker='string',
    MaxUploads=123,
    Prefix='string',
    UploadIdMarker='Test1'")

Tags: instringreturnifs3defelsekwargs

热门问题