zoukankan      html  css  js  c++  java
  • python 类相关 下划线相关 __init__

    1、静态方法

    class C(object):
        @staticmethod
        def f():
            print('runoob');
     
    C.f();          # 静态方法无需实例化
    cobj = C()
    cobj.f()        # 也可以实例化后调用
    
    
    

    静态方法:无法访问类属性、实例属性,相当于一个相对独立的方法,跟类其实没什么关系,换个角度来讲,其实就是放在一个类的作用域里的函数而已。
    类成员方法:可以访问类属性,无法访问实例属性。

    下划线

    _ 单下划线:python中不存在真正的私有方法,可以在类的方法或属性前加一个 单下划线,意味着此方法或属性不应该去调用,它并不属于API,例:

    class BaseForm(StrAndUnicode):
        ...
     
        def _get_errors(self):
            "Returns an ErrorDict for the data provided for the form"
            if self._errors is None:
                self.full_clean()
            return self._errors
        
        errors = property(_get_errors)
    

    当想使用_get_errors()时,可以通过errors实现。

    __ 双下划线:避免子类重写此方法,只允许在该类的内部使用。

    前后双下划线

    1. __init__
      一个目录如果包含了 __init__,它就变成了一个包(package),它可以是空的,但必须存在,其他程序才可以从这个目录导入相应的模块或函数,这样的目录称为 namespace package。
      在python 3.3之后,__init__文件可以不需要。

    2. __name__
      标识模块名字的系统变量。
      1、如果模块是被导入的, __name__为模块的名字。
      2、如果模块是被直接运行的,__name____main__

  • 相关阅读:
    java 利用jsoup 爬取知乎首页问题
    ROIAlign, ROIPooling及ROIWarp对比
    yii2.0 gii
    mysql索引操作
    lbs basic mongodb
    php操作mongodb
    设计模式六大原则
    Java集合
    Java 快速失败( fail-fast ) 安全失败( fail-safe )
    计数数组中值的出现次数
  • 原文地址:https://www.cnblogs.com/qev211/p/15162697.html
Copyright © 2011-2022 走看看