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找到原始的类库查看源码。//img1.sycdn.imooc.com/szimg/5ec4e80f090090c108810335.jpg

0
0

bobby

2019-07-21

//img.mukewang.com/szimg/5d33f8d4091f746911320908.jpg这是我这里的源码 你的python是哪个版本

0
2
bobby
回复
慕移动2137064
你是python3.7的哪个小版本 我本地安装试试
2019-12-24
共2条回复

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2127 学习 · 551 问题

查看课程