[py]python的继承体系-源码目录结构
2018-01-15 15:43
501 查看
python3安装目录
pip install virtualenv pip install virtualenvwrapper pip install virtualenvwrapper-win mkvirtualenv --python=C:\Python27\python.exe py27env exit mkvirtualenv --python=C:\Python36\python.exe py36env workon #查看刚刚创建的环境,mkvirtualenv -h查看帮助
pip安装的第三方包存放位置site-packages
安装flask后
pip install -i https://pypi.douban.com/simple flask
python模块查找顺序
['', 'C:\\Users\\Administrator\\Envs\\py36test\\Scripts\\python36.zip', -->系统里没找到 'C:\\Users\\Administrator\\Envs\\py36test\\DLLs', -->虚拟环境貌似不存在 'C:\\Users\\Administrator\\Envs\\py36test\\lib', --> 在lib目录搜模块 'C:\\Users\\Administrator\\Envs\\py36test\\Scripts', 'C:\\Python36\\Lib', ->非虚拟环境里找 'C:\\Python36\\DLLs', ->一些pyd文件 'C:\\Users\\Administrator\\Envs\\py36test', 'C:\\Users\\Administrator\\Envs\\py36test\\lib\\site-packages'] -->pip安装的目录找
Lib下的模块
包含在了help('modules') 里ls /c/Users/Administrator/Envs/py36test/Lib
__future__.py genericpath.py reprlib.py __pycache__/ hashlib.py rlcompleter.py _bootlocale.py heapq.py shutil.py _collections_abc.py hmac.py site.py _dummy_thread.py imp.py site-packages/ _weakrefset.py importlib/ sre_compile.py abc.py io.py sre_constants.py base64.py* keyword.py* sre_parse.py bisect.py linecache.py stat.py codecs.py locale.py struct.py collections/ no-global-site-packages.txt tarfile.py* copy.py ntpath.py tempfile.py copyreg.py operator.py token.py distutils/ orig-prefix.txt tokenize.py encodings/ os.py types.py enum.py posixpath.py warnings.py fnmatch.py random.py weakref.py functools.py re.py
builtins
包含在了help('modules') 里object在这个文件里
ls /c/Users/Administrator/.PyCharm2017.3/system/python_stubs/1441790480 array.py atexit.py audioop.py binascii.py builtins.py cmath.py errno.py faulthandler.py gc.py itertools.py marshal.py math.py mmap.py msvcrt.py nt.py parser.py pyexpat.py select.py sys.py time.py unicodedata.py winreg.py winsound.py xxsubtype.py zipimport.py zlib.py
为什么会认为 Python 是“自带电池”的
help('modules') 显示的模块
如果安装了flask也会检索到flask模块__future__ _weakref hashlib secrets _ast _weakrefset heapq select _asyncio _winapi hmac selectors _bisect abc html setuptools _blake2 activate_this http shelve _bootlocale aifc idlelib shlex _bz2 antigravity imaplib shutil _codecs argparse imghdr signal _codecs_cn array imp site _codecs_hk ast importlib smtpd _codecs_iso2022 asynchat inspect smtplib _codecs_jp asyncio io sndhdr _codecs_kr asyncore ipaddress socket _codecs_tw atexit itertools socketserver _collections audioop json sqlite3 _collections_abc base64 keyword sre_compile _compat_pickle bdb lib2to3 sre_constant _compression binascii linecache sre_parse _csv binhex locale ssl _ctypes bisect logging stat _ctypes_test builtins lzma statistics _datetime bz2 macpath string _decimal cProfile macurl2path stringprep _dummy_thread calendar mailbox struct _elementtree cgi mailcap subprocess _findvs cgitb marshal sunau _functools chunk math symbol _hashlib cmath mimetypes symtable _heapq cmd mmap sys _imp code modulefinder sysconfig _io codecs msilib tabnanny _json codeop msvcrt tarfile _locale collections multiprocessing telnetlib _lsprof colorsys netrc tempfile _lzma compileall nntplib test _markupbase concurrent nt textwrap _md5 configparser ntpath this _msi contextlib nturl2path threading _multibytecodec copy numbers time _multiprocessing copyreg opcode timeit _opcode crypt operator tkinter _operator csv optparse token _osx_support ctypes os tokenize _overlapped curses parser trace _pickle datetime pathlib traceback _pydecimal dbm pdb tracemalloc _pyio decimal pickle tty _random difflib pickletools turtle _sha1 dis pip turtledemo _sha256 distutils pipes types _sha3 doctest pkg_resources typing _sha512 dummy_threading pkgutil unicodedata _signal easy_install platform unittest _sitebuiltins email plistlib urllib _socket encodings poplib uu _sqlite3 ensurepip posixpath uuid _sre enum pprint venv _ssl errno profile warnings _stat faulthandler pstats wave _string filecmp pty weakref _strptime fileinput py_compile webbrowser _struct fnmatch pyclbr wheel _symtable formatter pydoc winreg _testbuffer fractions pydoc_data winsound _testcapi ftplib pyexpat wsgiref _testconsole functools queue xdrlib _testimportmultiple gc quopri xml _testmultiphase genericpath random xmlrpc _thread getopt re xxsubtype _threading_local getpass reprlib zipapp _tkinter gettext rlcompleter zipfile _tracemalloc glob runpy zipimport _warnings gzip sched zlib
查看Python当前已装入的模块
结果是一个字典:>>> sys.modules {'copy_reg': <module 'copy_reg' from '/usr/lib64/python2.7/copy_reg.pyc'>, 'sre_compile': <module 'sre_compile' from '/usr/lib64/python2.7/sre_compile.pyc'>, '_sre': <module '_sre' (built-in)>, 'encodings': <module 'encodings' from '/usr/lib64/python2.7/encodings/__init__.pyc'>, 'site': <module 'site' from '/usr/lib64/python2.7/site.pyc'>, '__builtin__': <module '__builtin__' (built-in)>, 'sysconfig': <module 'sysconfig' from '/usr/lib64/python2.7/sysconfig.pyc'>, '__main__': <module '__main__' (built-in)>, 'encodings.encodings': None, 'abc': <module 'abc' from '/usr/lib64/python2.7/abc.pyc'>, 'posixpath': <module 'posixpath' from '/usr/lib64/python2.7/posixpath.pyc'>, '_weakrefset': <module '_weakrefset' from '/usr/lib64/python2.7/_weakrefset.pyc'>, 'errno': <module 'errno' (built-in)>, 'encodings.codecs': None, 'sre_constants': <module 'sre_constants' from '/usr/lib64/python2.7/sre_constants.pyc'>, 're': <module 're' from '/usr/lib64/python2.7/re.pyc'>, '_abcoll': <module '_abcoll' from '/usr/lib64/python2.7/_abcoll.pyc'>, 'types': <module 'types' from '/usr/lib64/python2.7/types.pyc'>, '_codecs': <module '_codecs' (built-in)>, 'encodings.__builtin__': None, '_warnings': <module '_warnings' (built-in)>, 'codecs': <module 'codecs' from '/usr/lib64/python2.7/codecs.pyc'>, 'genericpath': <module 'genericpath' from '/usr/lib64/python2.7/genericpath.pyc'>, 'stat': <module 'stat' from '/usr/lib64/python2.7/stat.pyc'>, 'zipimport': <module 'zipimport' (built-in)>, '_sysconfigdata': <module '_sysconfigdata' from '/usr/lib64/python2.7/_sysconfigdata.pyc'>, 'warnings': <module 'warnings' from '/usr/lib64/python2.7/warnings.pyc'>, 'UserDict': <module 'UserDict' from '/usr/lib64/python2.7/UserDict.pyc'>, 'encodings.utf_8': <module 'encodings.utf_8' from '/usr/lib64/python2.7/encodings/utf_8.pyc'>, 'sys': <module 'sys' (built-in)>, 'repoze': <module 'repoze' (built-in)>, 'readline': <module 'readline' from '/usr/lib64/python2.7/lib-dynload/readline.so'>, 'os.path': <module 'posixpath' from '/usr/lib64/python2.7/posixpath.pyc'>, 'signal': <module 'signal' (built-in)>, 'traceback': <module 'traceback' from '/usr/lib64/python2.7/traceback.pyc'>, 'linecache': <module 'linecache' from '/usr/lib64/python2.7/linecache.pyc'>, 'posix': <module 'posix' (built-in)>, 'encodings.aliases': <module 'encodings.aliases' from '/usr/lib64/python2.7/encodings/aliases.pyc'>, 'exceptions': <module 'exceptions' (built-in)>, 'sre_parse': <module 'sre_parse' from '/usr/lib64/python2.7/sre_parse.pyc'>, 'os': <module 'os' from '/usr/lib64/python2.7/os.pyc'>, '_weakref': <module '_weakref' (built-in)>}
python的继承体系
python中一切皆对象a = int(1) ## buildin class int t = tuple((1,2,3)) ## class str arr = list([1,2,3,4]) ## class list
ls /c/Users/Administrator/.PyCharm2017.3/system/python_stubs/1441790480
类的继承
类的定义
参考: 简明Python魔法 - 1当Python解释器遇到类声明时,会创建一个新的namespace ,并执行其内的所有代码,并将变量注册到这个namespace中。
class Foo(object): print 'Loading...' spam = 'eggs' print 'Done!' class MetaClass(type): def __init__(cls, name, bases, attrs): print('Defining %s' % cls) print('Name: %s' % name) print('Bases: %s' % (bases,)) print('Attributes:') for (name, value) in attrs.items(): print(' %s: %r' % (name, value)) class RealClass(object, metaclass=MetaClass): spam = 'eggs'
判断对象是否属于这个类
class person():pass p = person() isinstance(p2,person)
实例和类内存结构
字段: 普通字段 静态字段 共享内存 方法都共享内存: 只不过调用方法不同 普通方法 self 类方法 不需要self 静态方法 cls
查看关键字
from keyword import kwlist print(kwlist) >>> help() help> keywords ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
查看本地环境所有可用模块,没显示buildin模块
help('modules') IPython aifc idlelib selectors __future__ antigravity imaplib setuptools __main__ argparse imghdr shelve _ast array imp shlex _asyncio ast importlib shutil _bisect asynchat inspect signal _blake2 asyncio io simplegener _bootlocale asyncore ipaddress site _bz2 atexit ipython_genutils six _codecs audioop itertools smtpd _codecs_cn autoreload jedi smtplib _codecs_hk base64 jieba sndhdr _codecs_iso2022 bdb json socket _codecs_jp binascii keyword socketserve _codecs_kr binhex lib2to3 sqlite3 _codecs_tw bisect linecache sre_compile _collections builtins locale sre_constan _collections_abc bz2 logging sre_parse _compat_pickle cProfile lzma ssl _compression calendar macpath stat _csv cgi macurl2path statistics _ctypes cgitb mailbox storemagic _ctypes_test chunk mailcap string _datetime cmath markdown stringprep _decimal cmd marshal struct _dummy_thread code math subprocess _elementtree codecs mimetypes sunau _findvs codeop mmap symbol _functools collections modulefinder sympyprinti _hashlib colorama msilib symtable _heapq colorsys msvcrt sys _imp compileall multiprocessing sysconfig _io concurrent netrc tabnanny _json configparser nntplib tarfile _locale contextlib nt telnetlib _lsprof copy ntpath tempfile _lzma copyreg nturl2path test _markupbase crypt numbers tests _md5 csv opcode textwrap _msi ctypes operator this _multibytecodec curses optparse threading _multiprocessing cythonmagic os time _opcode datetime parser timeit _operator dbm parso tkinter _osx_support decimal pathlib token _overlapped decorator pdb tokenize _pickle difflib pickle trace _pydecimal dis pickleshare traceback _pyio distutils pickletools tracemalloc _random django pip traitlets _sha1 django-admin pipes tty _sha256 doctest pkg_resources turtle _sha3 dummy_threading pkgutil turtledemo _sha512 easy_install platform types _signal email plistlib typing _sitebuiltins encodings poplib unicodedata _socket ensurepip posixpath unittest _sqlite3 enum pprint urllib _sre errno profile uu _ssl faulthandler prompt_toolkit uuid _stat filecmp pstats venv _string fileinput pty warnings _strptime fnmatch py_compile wave _struct formatter pyclbr wcwidth _symtable fractions pydoc weakref _testbuffer ftplib pydoc_data webbrowser _testcapi functools pyexpat wheel _testconsole gc pygments whoosh _testimportmultiple genericpath pytz winreg _testmultiphase getopt queue winsound _thread getpass quopri wsgiref _threading_local gettext random xdrlib _tkinter glob re xml _tracemalloc gzip reprlib xmlrpc _warnings hashlib rlcompleter xxsubtype _weakref haystack rmagic zipapp _weakrefset heapq runpy zipfile _winapi hmac sched zipimport abc html secrets zlib activate_this http select
dir() 函数: 显示模块属性和方法
__builtin__模块在Python3中重命名为builtins。In [2]: dir(__builtins__) Out[2]: ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarnin 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__IPYTHON__', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'display', 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
有个疑问,tuple和list都有index和count方法,难道他们分别各自实现了两遍吗? 源码看不到
python3源码目录-编译安装
$ sudo yum install yum-utils $ sudo yum-builddep python3 $ wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz $ tar -xvzf Python-3.5.2.tgz $ ./configure --prefix=/usr/local/python35 $ make && make install
Include:Python所有的头文件,写C/C++扩展时需要
Lib:Python自带的标准库,Python语言编写
Modules:由C语言编写的模块,如ctypes、mutltiprocessing等
Parser: Python解释器的Scanner和Parser,即Python的词法分析和语法分析
Objects:Python的内建对象的实现、包括list、dict等
Python:Python解释器的Compiler和执行引擎
PCBuild:Visual Studio工程文件
相关文章推荐
- Hadoop源码分析之NameNode的目录构成与类继承结构
- Hadoop源码分析之DateNode的目录构成与类继承结构
- [py]python的继承体系
- python 开发的目录结构
- python学习(2):自定义包结构及__init__.py模块和__all__变量的使用
- Android2.1源码目录结构(续)
- 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机体系结构/并行与分布计算/存储系统
- python基础6--目录结构
- Python: 从 指定地址 下载文件 到 本地目录(附源码)
- [置顶] sqlmap 的源码学习笔记一之目录结构
- mahout源码目录结构(二)
- InfluxDB源码目录结构解析