鱼C论坛

 找回密码
 立即注册
查看: 1381|回复: 0

[技术交流] 零基础入门学习Python 第 38 讲 类和对象 继承

[复制链接]
发表于 2018-4-4 12:03:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
测试题:
0.
类似的对象可以继承相同类来实现,大大降低了代码量.
1.
给类声明的时候报错,只能返回None
__init__方法不返回除None以外的任何对象.
2.
不会,子类定义和父类同名的方法,会覆盖掉父类的方法,但是父类的方法依然在父类中保持不变.
3.
在企鹅类重新定义父类的飞方法.
4.
super()写上后,不用考虑是第几重继承,反正是继承上面的类就是了.super()不会出现菱形继承的问题.
5.
因为是菱形继承,在A中可能一个计数器会多次使用到,这是不符合设计程序的初衷的.
6.
类名.__init__(self)换为super().__init__()

动动手:
0.
 import math as m
class Point:
    def __init__(self,x,y):
        self.x = x
        self.y = y
        
class Line:
    def __init__(self,p1,p2):
        self.p1 = p1
        self.p2 = p2 
    def getLen(self):
        return (m.sqrt((p1.x-p2.x) ** 2 + (p1.y-p2.y) ** 2))

课堂笔记:
  1. 类中的元素是不用self方法的,类中的方法第一个参数必须是self,类中的魔方方法init,里面的参数用魔方方法.
  2. 何时用self何时不用:
      a. self指的是实例化后的对象名,如果需要不同对象名的参数不同,此参数需要用self并用init初始化,如果此参数是大家用的都一样的,就可以写到公用参数里.
      b. 例子:class FIsh里,need = water是大家的共有特征,可写在前面,而name是大家都有的,但是每个对象又不一样,所以用self.name.
  3. 子类初始化时如果和父类有继承,也有独创,用super().__init__()即可.
  4. 子类的函数和父类相同,会覆盖掉父类方法,父类里的函数不受影响.

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 03:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表