第九天

作者: Liar_f95f | 来源:发表于2018-07-21 23:57 被阅读0次

    第十一章

    理解类与对象,他们的关系,理解【继承】【组合】两个概念。
    接下来进去编码的重点章节,整章内容都是重点。
    任务1:写一遍整章的所有例子并理解例子所讲的知识点,做笔记。
    任务2:编写类描述 人类,中国人,印度人,亚洲人,非洲人,广东人,的特征和能力。【想到什么特征和能力就写上去】
    (代码文件要放马云上)

    import random as r
    
    class Fish:
        def __init__(self):
            self.x = r.randint(0, 10)
            self.y = r.randint(0, 10)
    
        def move(self):
            #这里主要演示类的继承机制,就不考虑检查差场景边界和移动方向的问题
    
            #假设所有鱼都是一路向西游
            self.x -= 1
            print("我的位置是:", self.x, self.y)
    
    class Godfish(Fish):
        pass
    
    class Carp(Fish):
        pass
    
    class Salmon(Fish):
        pass
    #上边几个都是食物,食物不需要有个性,所有直接继承fish类的全部属性和方法即可
    #下边定义鲨鱼类,这个是吃货,除了继承fish类的属性和方法,还要添加一个吃的方法
    
    class Shark(Fish):
        def __int__(self):
            self.hungry = Ture
        def eat(self):
            if self.hungry:
                print("吃货的梦想就是天天有的吃")
                self.hungry = False
            else:
                print("太撑了,吃不下了!")
    

    跑错

    Traceback (most recent call last):
      File "<pyshell#9>", line 1, in <module>
        fish.move()
      File "C:/Users/a/Desktop/161401135-雷伟亮/继承,鱼的例子.py", line 12, in move
        self.x -= 1
    AttributeError: 'Fish' object has no attribute 'x'
    

    今天总结:

    1、对象=属性+方法。一个对象的特征为“属性”,一个对象的行为称为“方法”。
    2、self:就相当于每个房子的门牌号,用法如下

    class Ball:
        def setName(self,name):
            self.name = name
        def kick(self):
            print("我叫%s,我好帅!" % self.name)  
    c = Ball()
    c.setName("宁爷")
    b = Ball()
    b.setName("宁哥")
    

    3、print("我叫%s,我好帅!" % self.name) 中 。%s 令牌允许我插入(和潜在的格式)的字符串。比如,"Hello %s, my name is %s" % ('john', 'mike') # Hello john, my name is mike".
    4、公有:通过(.)进行访问,比如p.name。
    -----私有:在变量名或函数名前加”__“两个下划线表示,比如p.__name。
    5、继承,相似的机制自动传递,class类名(被继承的类)

    class parent:
        def hi(self):
            print("正在调用父类的方法...")
    
    class child(parent):
        pass
    
    p = parent()
    p.hi()
    c = child()
    c.hi()
    
    class child(parent):
        def hi(self):
            print("正在调用子类的方法...")
    
    c = child()
    c.hi()
    

    余留问题和任务·:
    1__int__()方法称为构造方法,构造函数没看懂
    2、 学习到课本,111页,自己看书学得有点燥。明天继续学习组合,努力看每一个字,解决上面继承跑错的问题,之后完成任务二。
    3、代码还没试过上传的码云上,不知上传有没问题,一定要再Linux终端上传吗?
    4、最近长痘,今晚早睡。

    相关文章

      网友评论

          本文标题:第九天

          本文链接:https://www.haomeiwen.com/subject/skihmftx.html