• python面向对象的简记


    一、python3的一些不同之处的简记:
      1)python中用elif代替了else if,所以if语句的关键字为if-elif-else(并不是说不能有if-else)。
      2)每个条件后面都要使用冒号':',表示接下来是满足条件后要执行的语句块。
      3)python采用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
      4)python中没有switch-case语句。
      5)python中没有do-while循环。
      6)break用于跳出for/while的循环体,没有下一轮的说法了。而continue用于跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
      7)循环语句可以有else字句,它在穷尽列表(以for循环)或条件变为false(以while循环)导致循环终止时被执行,但循环被break终止时不执行。

      8)python3已经不支持<>运算符,但是可以使用 != 代替。

      9)end关键字可以用于将结果输出到同一行中。或者说在输出的末尾添加不同的字符:如:

        >>>  a,b = 0,1

        >>>  while b < 1000:
        >>>    print(b,end=',')
        >>>    a,b = b,a+b   #这部分的赋值是同一层的,也就是:不是执行a = b后,更新了a的值,再执行b = a+b。
        执行上面的程序,将会输出:1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

    二、python面向对象的简记
    1、创建一个类:
      >>>class Myclass:
      >>>  i = 123 #类的属性
      >>>  __j = 0 #带双下划线的为类的私有属性,私有属性在类外部是无法直接进行访问的,在类内部直接使用self.__j调用就行。
      >>>  def fun(self): #类的方法
      >>>    return 'yang'
      >>>  def __fun1(self): #类的私有方法,以两个下划线开头,只能在类内部调用,不能在外部调用,间接调用也不行。
      >>>    return 'yangrongkuan'
    2、创建对象(类的实例):对象包括两个数据成员(类变量和实例变量)和方法。
      >>>x = Myclass() #将该对象赋给局部变量x,x此时为空的对象
    3、类的构造函数:
      >>>def __init__(self): #跟其他语言一样,可以创建为带参构造函数
      >>>  pass


      这里顺便总结一下继承中的构造函数调用问题:
        a、子类不重写__init__()方法的话,实例化子类后,子类会自动调用父类的__init__()方法。
        b、子类如果重写__init__()方法的话,实例化子类后,子类将不会调用父类的__init__()方法。
        c、子类如果重写__init__()方法,但又需要调用父类的构造方法的话,可以使用super关键字进行调用:
          super(子类类名,self).__init__(参数1,参数2,...)
          或者:父类名称.__init__(self,参数1,参数2,...)
    4、python的类的方法与普通函数的区别:它们必须有一个额外的第一个参数名称-self(self代表的是类的实例,代表当前对象的地址,不是类,self.class则是指向类)。也就是说,带self的那是方法,不带self的那些是函数。且是用def关键字来定义一个方法。 【当然,用self不是定死的,也可以用this代替,但是一般按照约定用self】
    5、继承:
      >>>class DerivedClassName(BaseClassName1,BaseClassName2,BaseClassName3...):
      >>>  pass
      如果是多继承的话,若基类中有相同的方法名,而在子类使用时没有指定,python会从左到右的顺序查找基类中是否包含方法。(所以要注意顺序)
    6、类变量和实例变量:
      类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
      在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。

  • 相关阅读:
    小白如何在Windows下使用Redis
    OAuth2.0实例说明
    关于EntityFramework 更新数据记录时字段全部更新问题和不从数据库中获取直接更新记录
    Asp.net Controller中View 和Action方法认证Authorize 及对AuthorizeAttribute扩展
    MidpointRounding 枚举值简要说明
    JavaScript 去空格方法(转部份)
    脏读,不可重复读,幻读 (转)
    20111204 15:36 JAVA实现位向量给无重复元素的整数数组排序
    JAVA String
    CSS样式表的优先级别
  • 原文地址:https://www.cnblogs.com/yangrongkuan/p/12071871.html
Copyright © 2020-2023  润新知