DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on

Underscore in Python (3)

Buy Me a Coffee

*Memo:

  • My post explains the single, double and triple leading and trailing underscore with the variables, methods and classes in a class.
  • My post explains the single, double and triple leading and trailing underscore with variables, functions and classes.

A single, double and triple leading and trailing underscore can be used with the variables, functions and classes in a function:

<The variables in a function>:

def func():
    _var = "_var"           # SLU       (Acceptable)
    __var = "__var"         # DLU       (Acceptable)
    ___var = "___var"       # TLU       (Acceptable)
    var_ = "var_"           # STU       (Acceptable)
    var__ = "var__"         # DTU       (Acceptable)
    var___ = "var___"       # TTU       (Acceptable)
    _var_ = "_var_"         # SLU & STU (Acceptable)
    __var_ = "__var_"       # DLU & STU (Acceptable)
    ___var_ = "___var_"     # TLU & STU (Acceptable)
    _var__ = "_var__"       # SLU & DTU (Acceptable)
    __var__ = "__var__"     # DLU & DTU (Acceptable)
    ___var__ = "___var__"   # TLU & DTU (Acceptable)
    _var___ = "_var___"     # SLU & TTU (Acceptable)
    __var___ = "__var___"   # DLU & TTU (Acceptable)
    ___var___ = "___var___" # TLU & TTU (Acceptable)

    print(_var)      # _var
    print(__var)     # __var
    print(___var)    # ___var
    print(var_)      # var_
    print(var__)     # var__
    print(var___)    # var___
    print(_var_)     # _var_
    print(__var_)    # __var_
    print(___var_)   # ___var_
    print(_var__)    # _var__
    print(__var__)   # __var__
    print(___var__)  # ___var__
    print(_var___)   # _var___
    print(__var___)  # __var___
    print(___var___) # ___var___

func()
Enter fullscreen mode Exit fullscreen mode

<The functions in a function>:

def func():
    def _func(): pass      # SLU       (Acceptable)
    def __func(): pass     # DLU       (Acceptable)
    def ___func(): pass    # TLU       (Acceptable)
    def func_(): pass      # STU       (Acceptable)
    def func__(): pass     # DTU       (Acceptable)
    def func___(): pass    # TTU       (Acceptable)
    def _func_(): pass     # SLU & STU (Acceptable)
    def __func_(): pass    # DLU & STU (Acceptable)
    def ___func_(): pass   # TLU & STU (Acceptable)
    def _func__(): pass    # SLU & DTU (Acceptable)
    def __func__(): pass   # DLU & DTU (Acceptable)
    def ___func__(): pass  # TLU & DTU (Acceptable)
    def _func___(): pass   # SLU & TTU (Acceptable)
    def __func___(): pass  # DLU & TTU (Acceptable)
    def ___func___(): pass # TLU & TTU (Acceptable)

    print(_func.__name__)      # _func
    print(__func.__name__)     # __func
    print(___func.__name__)    # ___func
    print(func_.__name__)      # func_
    print(func__.__name__)     # func__
    print(func___.__name__)    # func___
    print(_func_.__name__)     # _func_
    print(__func_.__name__)    # __func_
    print(___func_.__name__)   # ___func_
    print(_func__.__name__)    # _func__
    print(__func__.__name__)   # __func__
    print(___func__.__name__)  # ___func__
    print(_func___.__name__)   # _func___
    print(__func___.__name__)  # __func___
    print(___func___.__name__) # ___func___

func()
Enter fullscreen mode Exit fullscreen mode

<The classes in a function>:

def func():
    class _Cls: pass      # SLU       (Acceptable)
    class __Cls: pass     # DLU       (Unacceptable)
    class ___Cls: pass    # TLU       (Unacceptable)
    class Cls_: pass      # STU       (Acceptable)
    class Cls__: pass     # DTU       (Acceptable)
    class Cls___: pass    # TTU       (Acceptable)
    class _Cls_: pass     # SLU & STU (Acceptable)
    class __Cls_: pass    # DLU & STU (Unacceptable)
    class ___Cls_: pass   # TLU & STU (Unacceptable)
    class _Cls__: pass    # SLU & DTU (Acceptable)
    class __Cls__: pass   # DLU & DTU (Acceptable)
    class ___Cls__: pass  # TLU & DTU (Acceptable)
    class _Cls___: pass   # SLU & TTU (Acceptable)
    class __Cls___: pass  # DLU & TTU (Acceptable)
    class ___Cls___: pass # TLU & TTU (Acceptable)

    print(_Cls().__class__.__name__)      # _Cls
    print(__Cls().__class__.__name__)     # __Cls
    print(___Cls().__class__.__name__)    # ___Cls
    print(Cls_().__class__.__name__)      # Cls_
    print(Cls__().__class__.__name__)     # Cls__
    print(Cls___().__class__.__name__)    # Cls___
    print(_Cls_().__class__.__name__)     # _Cls_
    print(__Cls_().__class__.__name__)    # __Cls_
    print(___Cls_().__class__.__name__)   # ___Cls_
    print(_Cls__().__class__.__name__)    # _Cls__
    print(__Cls__().__class__.__name__)   # __Cls__
    print(___Cls__().__class__.__name__)  # ___Cls__
    print(_Cls___().__class__.__name__)   # _Cls___
    print(__Cls___().__class__.__name__)  # __Cls___
    print(___Cls___().__class__.__name__) # ___Cls___

func()
Enter fullscreen mode Exit fullscreen mode

Top comments (0)