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了