zoukankan      html  css  js  c++  java
  • Python3基础 函数 无return、return 空或None 的效果相同

    •        Python : 3.7.3
    •          OS : Ubuntu 18.04.2 LTS
    •         IDE : pycharm-community-2019.1.3
    •       Conda : 4.7.5
    •    typesetting : Markdown

    code

    coder@ubuntu:~$ source activate py37
    (py37) coder@ubuntu:~$ ipython
    Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
    Type 'copyright', 'credits' or 'license' for more information
    IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.
    
    In [1]: def fun_no_return(): 
       ...:     pass 
       ...:                                                                                          
    
    In [2]: def fun_return_none(): 
       ...:     return None 
       ...:                                                                                          
    
    In [3]: def fun_return_empty(): 
       ...:     return 
       ...:                                                                                          
    
    In [4]: import dis                                                                               
    
    In [5]: dis.dis(fun_no_return)                                                                   
      2           0 LOAD_CONST               0 (None)
                  2 RETURN_VALUE
    
    In [6]: dis.dis(fun_return_empty)                                                                
      2           0 LOAD_CONST               0 (None)
                  2 RETURN_VALUE
    
    In [7]: dis.dis(fun_return_none)                                                                 
      2           0 LOAD_CONST               0 (None)
                  2 RETURN_VALUE
    
    In [8]: exit                                                                                     
    (py37) coder@ubuntu:~$ conda deactivate
    coder@ubuntu:~$ 
    
    

    source_code

    def dis(x=None, *, file=None, depth=None):
        """Disassemble classes, methods, functions, and other compiled objects.
    
        With no argument, disassemble the last traceback.
    
        Compiled objects currently include generator objects, async generator
        objects, and coroutine objects, all of which store their code object
        in a special attribute.
        """
        if x is None:
            distb(file=file)
            return
        # Extract functions from methods.
        if hasattr(x, '__func__'):
            x = x.__func__
        # Extract compiled code objects from...
        if hasattr(x, '__code__'):  # ...a function, or
            x = x.__code__
        elif hasattr(x, 'gi_code'):  #...a generator object, or
            x = x.gi_code
        elif hasattr(x, 'ag_code'):  #...an asynchronous generator object, or
            x = x.ag_code
        elif hasattr(x, 'cr_code'):  #...a coroutine.
            x = x.cr_code
        # Perform the disassembly.
        if hasattr(x, '__dict__'):  # Class or module
            items = sorted(x.__dict__.items())
            for name, x1 in items:
                if isinstance(x1, _have_code):
                    print("Disassembly of %s:" % name, file=file)
                    try:
                        dis(x1, file=file, depth=depth)
                    except TypeError as msg:
                        print("Sorry:", msg, file=file)
                    print(file=file)
        elif hasattr(x, 'co_code'): # Code object
            _disassemble_recursive(x, file=file, depth=depth)
        elif isinstance(x, (bytes, bytearray)): # Raw bytecode
            _disassemble_bytes(x, file=file)
        elif isinstance(x, str):    # Source code
            _disassemble_str(x, file=file, depth=depth)
        else:
            raise TypeError("don't know how to disassemble %s objects" %
                            type(x).__name__)
    

    reference

    resource

    • [文档 - English] docs.python.org/3
    • [文档 - 中文] docs.python.org/zh-cn/3
    • [规范] www.python.org/dev/peps/pep-0008
    • [规范] zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules
    • [源码] www.python.org/downloads/source
    • [ PEP ] www.python.org/dev/peps
    • [平台] www.cnblogs.com
    • [平台] gitee.com


    Python具有开源、跨平台、解释型、交互式等特性,值得学习。
    Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
    代码的书写要遵守规范,这样有助于沟通和理解。
    每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。

  • 相关阅读:
    关于vim和emacs两个编辑器的想法
    人工智能简史 --- 笔记
    快速软件开发-书摘
    golang v 1.13 使用goproxy
    设计原本- the design of design 笔记
    access和trunk端口和hybird端口的区别
    子网划分及子网掩码计算方法
    ARM9裸板学习--win10下TQ2440裸板烧录(需要串口线和网线)
    嵌入式Linux学习2--Ubuntu18.04中C、C++环境的搭建
    嵌入式Linux学习1--Ubuntu18.04.3安装
  • 原文地址:https://www.cnblogs.com/xingchuxin/p/11142066.html
Copyright © 2011-2022 走看看