• 一周入门Python之day06



    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…


    欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

    **

    学习计划

    1,学习目标

    提示:可以添加学习目标
    例如: 一周掌握 Python 入门知识

    2,学习内容

    提示:可以添加要学的内容
    例如:
    A,掌握 Python 基本语法
    B,掌握 Python 列表、字典、元组等集合类型的用法
    C,掌握 Python 函数
    D,掌握 Python 常用模块
    E, 掌握 Python 模块与包
    F,掌握 Python 类与对象

    3,学习时间

    每天拿出来两个小时

    4,学习产出

    CSDN技术博客 每天一篇

    学习日记

    day06 Python的基础语法——面向对象

    类和对象

    对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。

    类的构成

    类(Class) 由3个部分构成
    01). 类的名称:类名
    02). 类的属性:一组数据
    03). 类的方法:允许对进行操作的方法 (行为)

    定义类

    定义一个类,格式如下:
    class 类名:
    方法列表
    demo:定义一个Hero类
    class Hero: # 经典类(旧式类)定义形式

    class Hero(object): # 新式类定义形式
    def info(self):
    print(“英雄各有见,何必问出处。”)
    说明:
    定义类时有2种形式:新式类和经典类,上面代码中的Hero为新式类,注释部分则为经典类;
    object 是Python 里所有类的最顶级父类;
    类名 的命名规则按照"大驼峰命名法";
    info 是一个实例方法,第一个参数一般是self,表示实例对象本身,当然了可以将self换为其它的名字,其作用是一个变量 这个变量指向了实例对象

    创建对象

    python中,可以根据已经定义的类去创建出一个或多个对象。

    创建对象的格式为:(实例化对象)

    对象名1 = 类名()
    对象名2 = 类名()
    对象名3 = 类名()

    1.类和对象1

    
    student = {}
    def student_add():
        pass
    
    def student_delete():
        pass
    
    
    
    
    # 声明类
    class Student(object):
        #  类属性
        clsas_name = "34期"
        num = 30
        # 方法
        def listen(self):
            print("听课")
    
        def homework(self):
            print("写作业")
    
    # 实例化对象 : 类名()
    s1 = Student()
    s2 = Student()
    # print(id(s1),id(s2))
    
    # 对象通过句点符号调用属性和方法
    # print(s1.class_name)  # 32
    # print(s1.num)  # 32
    # s1.listen()
    
    
    # 设置实例属性
    s1.name = "zhubiao"
    s1.age = 31
    
    
    # 实例对象.变量的查询顺序
    # print(s1.name)
    # print(s1.class_name)
    
    # print(s1.name)
    # print(s2.name)
    
    # 结论:类属性只能查不能改
    print(s1.clsas_name)
    s1.clsas_name = "33期"
    
    print(s1.clsas_name)
    print(s2.clsas_name)
    
    
    # 类属性修改
    Student.clsas_name = "34期"
    print(s1.clsas_name)
    print(s2.clsas_name)
    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64

    2.类和对象2

    # 声明类
    class Student(object):
        #  类属性
        clsas_name = "34期"
        num = 30
    
        # 初始化方法: 实例化自动触发  self:实例对象的空间地址
        def __init__(self, name, age, sex):
            # print("this is 初始化方法!")
            # print(id(self))
            # print(name,age,sex)
            self.name = name
            self.age = age
            self.sex = sex
    
        def listen(self, course="python"):
            print("%s正在听%s课" % (self.name, course))
    
        def homework(self):
            print("%s写作业" % self.name)
    
    
    # 方式1 实例化和属性赋值
    
    # s1 = Student()
    # s2 = Student()
    #
    # s1.name = "潘磊"
    # s1.age = 39
    # s1.gender = "男"
    #
    # s2.name = "zhubiao"
    # s2.age = 31
    # s2.gender = "男"
    
    # 方式2:
    s1 = Student("潘磊", 39, "男")
    s2 = Student("zhubiao", 31, "男")
    
    # print(s1.name)
    # print(s2.age)
    
    # s1.height = "180cm"
    # print(s1.height)
    # print(s2.height)
    
    
    # listen: 实例方法
    s1.listen()
    s2.listen("java")
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    3.一切皆对象

    # 一切皆对象
    # 数据类型 : 数字类型 布尔类型 字符串类型 列表 字典 集合 元组
    s = "hello yuan"
    s2 = str("hello yuan")
    print(s2, type(s2))
    s.upper()
    
    l = [1, 2, 3]
    l2 = list([2, 3, 4])
    print(l2, type(l2))
    l2.append(5)
    
    
    # 扩展案例
    
    class Weapon(object):
        def __init__(self, name, color, attack):
            self.name = name
            self.color = color
            self.attack = attack
    
    
    class Hero(object):
        def __init__(self, name, hp, weapon, level=2, exp=2000, money=10000):
            self.name = name
            self.hp = hp
            self.weapon = weapon
            self.level = level
            self.exp = exp
            self.money = money
    
    
    w1 = Weapon("弓箭", "黄色", 180)
    yuan = Hero("yuan", 100, w1)
    print(yuan.weapon)
    
    
    # 声明类
    class Student(object):
        #  类属性
        clsas_name = "34期"
        num = 30
        listen = 100
        # 方法
        def listen(self):
            print("听课")
    
        def homework(self):
            print("写作业")
    
    
    print(Student.clsas_name)
    Student.clsas_name = "xxx"
    
    s1 = Student()
    print(s1.clsas_name)
    # s1.listen = 100
    s1.listen()
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60

    4.静态方法和类方法

    class Utils2(object):
        class_num = 30
    
        # 静态方法
        @staticmethod
        def add(x, y):
            return x + y
    
        @staticmethod
        def sub(x, y):
            return x - y
    
        # 类方法
        @classmethod
        def add_class_num(cls):  # cls: 当前类对象
            # print(id(cls),id(Utils))
            cls.class_num += 1
    
        def add_class_num2(self):  # cls: 当前类对象
            Utils2.class_num += 1
    
    
    # 实例对象调用静态方法
    u = Utils2()
    # print(u.add(2, 3))
    
    # 类对象调用静态方法
    # u = Utils.add(6, 7)
    # print(u)
    
    #  类方法
    Utils2.add_class_num()
    print(Utils2.class_num)
    
    u.add_class_num2()
    print(u.class_num)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    5.继承

    class Animal(object):
        def eat(self):
            print("吃")
    
        def sleep(self):
            print("睡着了...")
    
    
    class Dog(Animal):
        # 覆盖父类方法
        def sleep(self):
            # 引用父类方法
            super().sleep()
            print("仰天大睡")
    
        def bark(self):
            print("狂吠")
    
    
    class Cat(Animal):
    
        def climetree(self):
            print("爬树")
    
    
    d1 = Dog()
    d1.sleep()
    # d1.eat()
    
    
    # c1 = Cat()
    # c1.sleep()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    6.多重继承

    class Animal(object):
        def eat(self):
            print("吃")
    
        def sleep(self):
            print("睡着了...")
    
    
    class Fly(object):
        def fly(self):
            print("飞")
    
    
    class Dog(Animal):
        # 覆盖父类方法
        def sleep(self):
            # 引用父类方法
            super().sleep()
            print("仰天大睡")
    
        def bark(self):
            print("狂吠")
    
    
    class Bat(Animal, Fly):
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
    
    class LittleBird(Animal, Fly):
        pass
    
    
    b = Bat("bbb",22)
    b.fly()
    
    print(type("hello"))
    print(type([1, 2, 3]))
    print(type(b))
    
    print(isinstance(b, Bat))
    print(isinstance(b, LittleBird))
    print(isinstance(b, Animal))
    print(isinstance(b, Fly))
    print(type(b) == Bat)
    
    print(dir(b))
    print(b.__dir__())
    print(b.__dict__)  # {'name': 'bbb', 'age': 22}
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
  • 相关阅读:
    Java笔记13—控制语句(分支、循环、转向)
    学Python的漫画漫步进阶 -- 第十五步.访问数据库
    HAIYPRH-PEG-DSPE,DSPE-PEG-HAIYPRH,磷脂-聚乙二醇-靶向肽HAIYPRH试剂供应
    手机备忘录怎么设置每月5号提醒事件
    企业视频数字人有哪些应用场景
    双层神经网络实现非线性回归——机器学习
    Redis基本全局命令(含key过期策略)
    营销科学中的边际ROI计量随笔记
    【小黑嵌入式系统第九课】PSoC 5LP第一个实验——LED、字符型LCD显示实验
    HashCode 和 equals 学习笔记
  • 原文地址:https://blog.csdn.net/Limenrence/article/details/126262622