目录

Python面向对象学习笔记(持续更新)

  • 1、自定义类

      class Person :
      	def setName(self,name):
      		self.name = name;
      	def getName(self):
      		return self.name;
      	def greet(self):
      		assert self.name
      		print("hello word!i am %s"% self.name);
    
  • self:与其它语言一样,代表当前对象的引用

  • Python并不直接支持私有方式:在方法或者变量名字前加__双下划线即可让外部无法访问

  • 带下划线的名字不会被imports语句导入

  • 类的命名空间

  • 所有位于class语句中的代码都在特殊的命名空间中执行–类命名空间。

  • 该命名空间可由类内所有成员访问。

  • 2、指定超类

  • 在class语句后面通过圆括号指定超类,多个超类用,号分隔。

  • 如果超类中有相同名称的方法或者字段,要注意超类的顺序,左边的超类会重写右边的超类。最终有效的是第一个超类

      class A:
        name="A";
    
      class B(A):
        name="B"
    
  • 更多分享:http://www.catbro.cn

  • 判断类的继承:issubclass

      print(issubclass(A,object)); : True
      print(issubclass(B,A)); : True
      print(issubclass(A,B)); : False
    
  • 判断一个对象是否是另外一个对象的实例:isinstance

      a = A();
      print(isinstance(a,A)); : True
    
  • 3、接口和内省

  • Python不像Java,Python不需要显示地编写接口,可以在使用对象的时候直接调用接口定义的api,如果该对象有该方法都成功,否则失败。

  • 当然,我们实际开发中肯定不能这样去写,我们可以通过一定的措施来检测对象是否具有我们需要的接口api 步骤: 1、我们可以通过hasattr(object,'特性名称')判断某个对象里面是有含有相关特性 2、然后通过callable(getattr(object,'特性名称','defaultValue'))检测该特性是否可用 3、如果前面两个步骤都通过了,我们就可以愉快的调用该api了