栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python学习笔记小结(3)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python学习笔记小结(3)

接上一篇博客

文章目录
    • 1、类
    • 2、继承
    • 4、多层继承
    • 5、多态


1、类
#类,存放该类对象的共同属性
class Dog():
    def info(self):#self是接受类的实例化对象本身
        print(self)
        print("狗祖宗")
    def attack(self):
        print("咬人")
jingmao = Dog()
jingmao.info()#介样子调用
print(jingmao)#jingmao就是self,jingmao是一个实例

#添加jingmao属性
jingmao.name = 'xiaocai'
jingmao.hp = 200
jingmao.att = 450
print(jingmao.name,jingmao.hp)
jingmao.attack()#介样子调用

输出:

狗祖宗

xiaocai 200
咬人

神奇的__init__函数

class Dog():
    def __init__(self):#初始化,在实例化对象的时候自动执行一下的代码块
        self.name = 'xiaocaigou'
        self.hp = 2000
        self.att = 450
        self.armor = 200
    def info(self):
        print("%s的生命力%d"%(self.name,self.hp))
jinmao = Dog()
jinmao.info()#能打印,因为他自动初始化了

输出:
xiaocaigou的生命力2000

__init__函数也可以传参

class Dog():
    def __init__(self,name,hp,att,armor):#初始化,在实例化对象的时候自动执行一下的代码块
        self.name = name
        self.hp = hp
        self.att = att
        self.armor = armor
    def info(self):
        print("%s的生命力%d"%(self.name,self.hp))
jinmao = Dog('xiaocaigou',2000,450,200)#__init__函数可以传参
hashiqi = Dog('xiaoshagou',2000,100,400)
jinmao.info()
hashiqi.info()

输出:
xiaocaigou的生命力2000
xiaoshagou的生命力2000

神奇的__str__函数

class Dog():
    def __init__(self,name,hp,att,armor):#初始化,在实例化对象的时候自动执行一下的代码块
        self.name = name
        self.hp = hp
        self.att = att
        self.armor = armor
    def info(self):
        print("%s的生命力%d"%(self.name,self.hp))
    def __str__(self):#如果直接打印对象的话,要输出来的信息,没有这个魔法函数,直接打印对象会输出地址
        return 'self.name,self.hp'
jinmao = Dog('xiaocaigou',2000,450,200)#__init__函数可以传参
hashiqi = Dog('xiaoshagou',2000,100,400)
jinmao.info()
hashiqi.info()
print(jinmao)

输出:
xiaocaigou的生命力2000
xiaoshagou的生命力2000
self.name,self.hp

2、继承
#继承
#父类
class Dog():
    def __init__(self):
        self.name = 'dogdad'
    def skill(self):
        print("attack people")
class Dog2():
    def __init__(self):
        self.name = 'dogmom'
    def skill(self):
        print("attack dog")
    def skill2(self):
        print("yaoweiba")
#子类
class Son(Dog,Dog2):#儿子继承了两个父类这样写
    pass
jinmao = Son()
print(jinmao.name)#儿子继承了父类,所以子类什么都没写也有name,若两个父类有同样属性,优先继承第一个
jinmao.skill()
jinmao.skill2()

输出:
dogdad
attack people
yaoweiba

#继承
#父类
class Dog():
    def __init__(self):
        self.name = 'dogdad'
    def skill(self):
        print("attack people")
class Dog2():
    def __init__(self):
        self.name = 'dogmom'
    def skill(self):
        print("attack dog")
    def skill2(self):
        print("yaoweiba")
#子类
class Son(Dog,Dog2):#儿子继承了两个父类这样写
    def __init__(self):
        self.name = 'gouson'
    def skill(self):
        print('tiangou')
print(jinmao.name)#子类重写了所以就是自己的
jinmao.skill()#子类重写了所以就是自己的
jinmao.skill2()

输出:
gouson
tiangou
yaoweiba

#如果子类重写了依然想调用父类
class Dog():
    def __init__(self):
        self.name = 'dogdad'
    def skill(self):
        print("attack people")
class Dog2():
    def __init__(self):
        self.name = 'dogmom'
    def skill(self):
        print("attack dog")
    def skill2(self):
        print("yaoweiba")
#子类
class Son(Dog,Dog2):#儿子继承了两个父类这样写
    def __init__(self):
        self.name = 'gouson'
    def skill(self):
        print('tiangou')
    #如果子类重写了依然想调用父类,用super
    def dad_skill(self):
        super().__init__()
        super().skill()
        super().skill2()
jinmao = Son()
jinmao.skill()
jinmao.dad_skill()

输出:
tiangou
attack people
yaoweiba

4、多层继承
#多层继承,父类的功能子类都有
class Dog():
    def __init__(self):
        self.name = 'dogdad'
    def skill1(self):
        print("attack people")
class Son(Dog):
    def __init__(self):
        self.name = 'dogmom'
    def skill2(self):
        print("attack dog")
    def skill3(self):
        print("yaoweiba")
#子类
class grandson(Son):
    def __init__(self):
        self.name = 'gouson'
    def skill4(self):
        print('tiangou')
jinmao = grandson()
jinmao.skill2()

输出:attack dog

5、多态
#多态
class Dog():
    def __init__(self):
        self.name = 'dog dad'
    def skill(self):
        print('attack people')
class Son1(Dog):
    def skill(self):
        print('attack man')
class Son2(Dog):
    def skill(self):
        print('attack women')
class Son3(Dog):
    def skill(self):
        print('attack children')
son1 = Son1()
son2 = Son2()
son3 = Son3()
son1.skill()
son2.skill()
son3.skill()

输出:
attack man
attack women
attack children

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/864148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号