昨天写了面向对象的内容,结果关机时没发布,什么都没有了,极其难受
静态方法,个人理解是self对象未被调用的方法,甚至不用实例化,可以直接调用
实例化刚开始时调用的函数
实例销毁时,就是对象不再被调用时触发,内存回收机制
tom和jack的调用都执行完,对象不再被使用,执行del函数
变量前加两条下划线,外部访问不到,变成类的私有变量,
其实python是把这个私有变量改了名字,类似_Student__name这样,外部可以访问,但不要这样做,万一不同版本定义的不同呢
变量前后都有两条下划线,是特殊变量,外部是可以访问的
在类中增加相应的函数
要统计男孩和女孩的信息,相同点有名字和年龄,不同点为玩具和书
将相同点放在一个类中作为父类,男孩女孩只记录各自的不同点,并调用父类
在Boy类中,并没有对self.name赋值,引用的Child父类中的self.name
Boy实例化时,将自身self传入到Child.__init__中,用来初始化Child类
现在删掉Girl中的tell函数,依然执行lily.tell()
Girl已经没有tell(),python会向上查找,找到父类中tell(),因在__init__中,Girl已将self传入Child,所以可以用自身self,调用Child.tell()
个人理解的多态,好像没啥实际作用,看下图
只要有run()这个方法,不管传入的是什么对象,都可以调用,
python的动态语言特性,感觉就是平时的代码习惯,有机会去看看java的静态语言是啥样的