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 修饰的变量。

相关推荐