Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“<;=”是什么意思如何处理python集和布尔值?_Python_Shutil - Fatal编程技术网

“<;=”是什么意思如何处理python集和布尔值?

“<;=”是什么意思如何处理python集和布尔值?,python,shutil,Python,Shutil,我在标准库中的shutil模块中发现了一些我不理解的代码 \u use\u fd\u函数最后保存一个truthy/falsy值,其初始化如下: _use_fd_functions = ({os.open, os.stat, os.unlink, os.rmdir} <= os.supports_dir_fd and os.listdir in os.supports_fd and

我在标准库中的
shutil
模块中发现了一些我不理解的代码

\u use\u fd\u函数
最后保存一个truthy/falsy值,其初始化如下:

_use_fd_functions = ({os.open, os.stat, os.unlink, os.rmdir} <=
                     os.supports_dir_fd and
                     os.listdir in os.supports_fd and
                     os.stat in os.supports_follow_symlinks)

当然,由于有经验的开发人员无法在几秒钟内破译代码,因此代码太聪明了。但是它是如何工作的,它是做什么的呢?

您的答案可以在以下列表中找到:

os.supports\u dir\u fd
是一组函数


在Python
have than
中,您可以在以下位置找到答案:

os.supports\u dir\u fd
是一组函数


在Python
中,have than
是Python 2中的源代码吗?在这里,将
集合
布尔值
进行比较不会引发
类型错误
。我不记得规则(这是删除此类行为的部分原因),但这里发生了一些聪明的事情。我真的不明白这是怎么回事,但
{lambda x:x}@juanpa.arrivillaga我读到的
shutil
的路径是
C:\Python35\Lib\shutil.py
。我希望是Python3.5。源代码是Python2吗?在这里,将
集合
布尔值
进行比较不会引发
类型错误
。我不记得规则(这是删除此类行为的部分原因),但这里发生了一些聪明的事情。我真的不明白这是怎么回事,但
{lambda x:x}@juanpa.arrivillaga我读到的
shutil
的路径是
C:\Python35\Lib\shutil.py
。我希望它是Python3.5。也许我的速度慢了点,但我正努力从中拼凑出原始代码的意图。你能在一个较高的层次上陈述它吗?很感谢,现在对我来说它更有意义。也许我速度慢,但我正努力从中拼凑出原始代码的意图。你能在一个高层次上表达它吗?很感激,现在对我来说它更有意义了
>>> {lambda x: x} <= True
TypeError: unorderable types: set() <= bool()
>>> {True} <= True
TypeError: unorderable types: set() <= bool()
>>> {lambda x: x} <= (lambda x: x+1)
TypeError: unorderable types: set() <= function()
>>> {lambda x: x} <= (lambda x: x+1) in {lambda x: x+1}
TypeError: unorderable types: set() <= function()
_set = set()
_add("HAVE_FACCESSAT",  "access")
_add("HAVE_FCHMODAT",   "chmod")
_add("HAVE_FCHOWNAT",   "chown")
_add("HAVE_FSTATAT",    "stat")
_add("HAVE_FUTIMESAT",  "utime")
_add("HAVE_LINKAT",     "link")
_add("HAVE_MKDIRAT",    "mkdir")
_add("HAVE_MKFIFOAT",   "mkfifo")
_add("HAVE_MKNODAT",    "mknod")
_add("HAVE_OPENAT",     "open")
_add("HAVE_READLINKAT", "readlink")
_add("HAVE_RENAMEAT",   "rename")
_add("HAVE_SYMLINKAT",  "symlink")
_add("HAVE_UNLINKAT",   "unlink")
_add("HAVE_UNLINKAT",   "rmdir")
_add("HAVE_UTIMENSAT",  "utime")
supports_dir_fd = _set