我正在使用一个包含我真的不明白的行的代码库:

x, x, z = getattr(ReceiveFile, maxsizes)(input, args)


因此,如果最后没有第二个元组,那将仅仅是

x, y, z = ReceiveFile.maxsizes


如何解释(input, args)结尾的元组?我不能轻易地运行此代码并与调试器一起玩以了解。

最佳答案

给定maxsizes变量的字符串值:

maxsizes = "abc"


下列

x, x, z = getattr(ReceiveFile, maxsizes)(input, args)


等效于:

x, x, z = ReceiveFile.abc(input, args)


换句话说:对象ReceiveFile有一个名为maxsizes(即ReceiveFile.abc)的方法,该方法由参数inputargs调用。括号不表示tuple,而是函数调用。

关于python - 带有两个元组的getattr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53852422/

10-09 07:27