python源码查看问题
来源:5-2 python中序列类型的abc继承关系

KenBetter
2019-07-18
我点击 from collections import abc 中abc想查看源码
显示的事这样的文件呢?
abc.pyi
# Stubs for collections.abc (introduced from Python 3.3)
#
# https://docs.python.org/3.3/whatsnew/3.3.html#collections
import sys
from . import (
Container as Container,
Hashable as Hashable,
Iterable as Iterable,
Iterator as Iterator,
Sized as Sized,
Callable as Callable,
Mapping as Mapping,
MutableMapping as MutableMapping,
Sequence as Sequence,
MutableSequence as MutableSequence,
Set as Set,
MutableSet as MutableSet,
MappingView as MappingView,
ItemsView as ItemsView,
KeysView as KeysView,
ValuesView as ValuesView,
)
if sys.version_info >= (3, 5):
from . import (
Generator as Generator,
ByteString as ByteString,
Awaitable as Awaitable,
Coroutine as Coroutine,
AsyncIterable as AsyncIterable,
AsyncIterator as AsyncIterator,
)
if sys.version_info >= (3, 6):
from . import (
Collection as Collection,
Reversible as Reversible,
AsyncGenerator as AsyncGenerator,
)
然后我再点击 Sequence as Sequence 中的Sequence
是这样的结果 看到源码呢:
AbstractSet = _alias(collections.abc.Set, T_co)
MutableSet = _alias(collections.abc.MutableSet, T)
# NOTE: Mapping is only covariant in the value type.
Mapping = _alias(collections.abc.Mapping, (KT, VT_co))
MutableMapping = _alias(collections.abc.MutableMapping, (KT, VT))
Sequence = _alias(collections.abc.Sequence, T_co)
MutableSequence = _alias(collections.abc.MutableSequence, T)
ByteString = _alias(collections.abc.ByteString, ()) # Not generic
Tuple = _VariadicGenericAlias(tuple, (), inst=False, special=True)
写回答
2回答
-
慕函数9413275
2020-05-20
这个用的是虚拟环境,是运行编译后的代码(虚拟环境依据原python环境自带默认模块编译,如果是虚拟环境装的扩展模块,就没有这个问题)。你可以直接使用pycharm找到原始的类库查看源码。
00 -
bobby
2019-07-21
这是我这里的源码 你的python是哪个版本
022019-12-24
相似问题