Python 这个函数在这个上下文中真正做什么?

Python 这个函数在这个上下文中真正做什么?,python,lambda,Python,Lambda,我在分析代码,因为我有一些空闲时间,我想我可以学到一些新东西!这是我找到的二进制到二进制的转换代码。 但是在过去的2-3天里,我一直在脑海里反复思考这个问题,但我绝对不能理解这个语句/函数/行的作用或含义 lambda b: str(int(b, 2)) 我认为(b,2)中的“b”表示二进制 我研究发现lambda是一个“调用”匿名函数或没有名字的函数。对吗 “b:”是什么意思?这也是二进制的还是lambda中的“子名称” 还有什么 str(int(b, 2)) 什么意思?我知道这是将二进制

我在分析代码,因为我有一些空闲时间,我想我可以学到一些新东西!这是我找到的二进制到二进制的转换代码。 但是在过去的2-3天里,我一直在脑海里反复思考这个问题,但我绝对不能理解这个语句/函数/行的作用或含义

lambda b: str(int(b, 2))
我认为(b,2)中的“b”表示二进制

我研究发现lambda是一个“调用”匿名函数或没有名字的函数。对吗

“b:”是什么意思?这也是二进制的还是lambda中的“子名称”

还有什么

str(int(b, 2))
什么意思?我知道这是将二进制转换成二进制的代码,但它到底是如何工作的呢


我很想知道!希望有人能帮我解决这个问题

这里有一个关于lambdas的好问题:

整数(x,基数=10)

将数字或字符串x转换为整数,或返回 如果未给出参数,则为0。如果x是一个数字,它可以是一个普通的数字 整数、长整数或浮点数。如果x是浮动的 点,转换将向零截断。如果论点是正确的 在整数范围之外,函数返回一个长对象

如果x不是一个数字或如果给定了基数,那么x必须是一个字符串或 以基数表示整数文字的Unicode对象。 (可选)文字前面可以加+或-(且中间没有空格) 中间)并被空格包围。base-n文本由以下内容组成 数字0到n-1,其中a到z(或a到z)的值为10到35。 默认基数为10。允许的值为0和2-36。基-2,-8, 和-16个字面值可以选择前缀为0b/0b、0o/0o/0或 0x/0x,如代码中的整数文本。基数0表示解释 字符串与整数文本完全相同,因此实际基数为2,8, 10或16


关于lambdas,这里有一个很好的问题:

整数(x,基数=10)

将数字或字符串x转换为整数,或返回 如果未给出参数,则为0。如果x是一个数字,它可以是一个普通的数字 整数、长整数或浮点数。如果x是浮动的 点,转换将向零截断。如果论点是正确的 在整数范围之外,函数返回一个长对象

如果x不是一个数字或如果给定了基数,那么x必须是一个字符串或 以基数表示整数文字的Unicode对象。 (可选)文字前面可以加+或-(且中间没有空格) 中间)并被空格包围。base-n文本由以下内容组成 数字0到n-1,其中a到z(或a到z)的值为10到35。 默认基数为10。允许的值为0和2-36。基-2,-8, 和-16个字面值可以选择前缀为0b/0b、0o/0o/0或 0x/0x,如代码中的整数文本。基数0表示解释 字符串与整数文本完全相同,因此实际基数为2,8, 10或16

b
lambda
函数的参数:

lambda b: ....
前面的第一部分定义了匿名函数的参数,这一部分定义了
b
,就像函数签名一样:

def binary_to_int(b):
    # ...
也可以给它取另一个名字:

lambda anothername: int(anothername, 2)
它绑定到传递给此lambda的参数:

binary_to_int = lambda b: int(b, 2)
result = binary_to_int('010101')  # so b is bound to '010101'
该函数返回函数int(b,2)的结果,该函数将字符串第一个参数解释为基数为2(二进制)的整数:

如果x不是一个数字或者如果给定了base,那么x必须是一个字符串或Unicode对象,表示基数中的整数文本。或者,文本前面可以加上
+
-
(中间没有空格),并用空格包围。基n文本由数字0到n-1组成,其中
A
z
(或
A
z
)的值为10到35。默认基数为10。允许的值为0和2-36。Base-2、-8和-16文本可以选择性地以
0b/0b
0o/0o/0
0x/0x
作为前缀,就像代码中的整数文本一样。基数0表示将字符串精确解释为整数文本,因此实际基数为2、8、10或16

b
lambda
函数的参数:

lambda b: ....
前面的第一部分定义了匿名函数的参数,这一部分定义了
b
,就像函数签名一样:

def binary_to_int(b):
    # ...
也可以给它取另一个名字:

lambda anothername: int(anothername, 2)
它绑定到传递给此lambda的参数:

binary_to_int = lambda b: int(b, 2)
result = binary_to_int('010101')  # so b is bound to '010101'
该函数返回函数int(b,2)的结果,该函数将字符串第一个参数解释为基数为2(二进制)的整数:

如果x不是一个数字或者如果给定了base,那么x必须是一个字符串或Unicode对象,表示基数中的整数文本。或者,文本前面可以加上
+
-
(中间没有空格),并用空格包围。基n文本由数字0到n-1组成,其中
A
z
(或
A
z
)的值为10到35。默认基数为10。允许的值为0和2-36。Base-2、-8和-16文本可以选择性地以
0b/0b
0o/0o/0
0x/0x
作为前缀,就像代码中的整数文本一样。基数0表示将字符串精确解释为整数文本,因此实际基数为2、8、10或16


b
在本例中是匿名
lambda
函数的参数。然而,从匿名函数的作用来看,
b
应该是一个二进制字符串,这一点似乎非常清楚

我认为理解匿名函数的最简单方法是通过一个例子

>>> b = '101'
>>> int(b, 2) # converts a binary string to base-10.
5
>>> str(int(b, 2))
'5'
匿名函数将二进制字符串转换为,然后将该整数转换回字符串。要实际使用匿名函数,可以执行以下操作: