zoukankan      html  css  js  c++  java
  • python中的OO

    写给自己的备忘,很浅显,可能只是句法方面的事,不涉及OO思想之类的,因为OO思想是共通的,并没有python的OO思想一说
    PS 示例代码来自《python简明教程》

    继承
    python中的继承语法跟java/c++系不同,却不是:也不是extends,是这样的

    class child(parent):
    pass             #py中,pass是空语句块

    self,init,和del
    python中的self有点类似于c++/java中的this是指针,代表本实例,不同的地方在于self要写在类函数的参数列表中,传递了self才能在函数中使用类实例的数据,但在调用时不需要写这个参数
    init类似于构造函数,用法也差不多,而del,不像c++中的析构,比较像java中的finalize,在实例被回收时调用,同java中一样,这个函数被调用的时间是不一样的

    class SchoolMember:
    def __init__(self, name, age):
    self.name = name
    self.age = age
    print ‘(Initialized SchoolMember: %s)’ % self.name
    def __del__(self, name, age):pass

    def tell(self):
    print ‘Name:”%s” Age:”%s”‘ % (self.name, self.age)

    SchoolMember().tell()  <–这里不需要写self的引用

    类数据与实例数据

    class child():
    bi=2    <–在java中这个是要加staitc滴,也就是说这个实际上相当于静态
    def __init__(self):
    self.bb=3 <–实例数据

    重载
    基本一样,不同的是python中的构造函数并不自动调用基类的构造函数,需要显式调用。

    多继承
    python支持多继承,不过不晓得有没有用,反正在我看来,多继承就是记载于葵花宝典的屠龙之技,自宫去学它了吧,也不一定用得上

    让C/C++/Java人员不爽的地方:

      • * 类数据居然不用声明直接用的
      • * 数据居然不用指定类型的
      • * 函数居然没有返回值类型的
      • * 居然没有访问权限修饰符的(我是指public,private,protected,忘了术语怎么说了)
  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/linyawen/p/2470051.html
Copyright © 2011-2022 走看看