Python学习6.1类与对象

2023-11-18

一、类的定义

1、类的组成:

  • 类属性
  • 实例方法
  • 静态方法
  • 类方法

eg:

输入:

class Student:
    native_place = "云南"
# 类属性

    def init(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def info(self):
        print("我的名字叫:", self.name, "n年龄是:", self.age)
    def eat(self):
        print("学生在吃饭")
# 实例方法

    @classmethod
    def cm(cls):
        print("类方法")
# 类方法

    @staticmethod
    def sm():
        print("静态方法")
# 静态方法

二、关于对象

1、对对象的操作:

输入:

class Student:
    native_place = "云南"
# 类属性

    def __init__(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def info(self):
        print("我的名字叫:", self.name, "年龄是:", self.age)

    def eat(self):
        print("学生在吃饭")
# 实例方法

    @classmethod
    def cm(cls):
        print("类方法")
# 类方法

    @staticmethod
    def method():
        print("静态方法")
# 静态方法

stu1 = Student("ww", 19)
print(stu1)

stu1.eat()
Student.eat(stu1)
# 这两句效果一致

stu1.info()
print(stu1.name)
print(stu1.age)

Student.cm()
Student.method()

输出:

<__main__.Student object at 0x0000020AC1ABBE80>
学生在吃饭
学生在吃饭
我的名字叫: ww 年龄是: 19
ww
19
类方法
静态方法

2、动态绑定属性:

输入:

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def eat(self):
        print(self.name, "在吃饭")


stu1 = Student("ww", 19)
stu2 = Student("zwj", 8000)
stu1.gender = "女"
stu2.gender = "狗"
print(stu1.name, stu1.age, stu1.gender)
print(stu2.name, stu2.age, stu2.gender)

输出:

ww 19 女
zwj 8000 狗

3、动态绑定方法:

输入:

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def eat(self):
        print(self.name, "在吃饭")


stu1 = Student("zwj", 8000)

def dress():
    print("a")

stu1.dress = dress
stu1.dress()

输出:

a

三、面向对象三大特征

1、封装:把属性的一系列方法包含在一个类里面

2、继承:

输入:(StudentTeacher 继承了 Person

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def info(self):
        print(self.name, self.age)


class Student(Person):
    def __init__(self, name, age, score):
        super().__init__(name, age)
        self.score = score


class Teacher(Person):
    def __init__(self, name, age, year):
        super().__init__(name, age)
        self.year = year


stu = Student("zwj", 80, 110)
tea = Teacher("hxc", 8000, 7980)

stu.info()
tea.info()

输出:

zwj 80
hxc 8000

注:一个子类可以有多个父类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python学习6.1类与对象 的相关文章

随机推荐

  • 使用nrm管理npm仓库

    引言 目前遇到了这样的问题 因为个人和公司的npm仓库环境不一样 导致使用时需要频繁的切换npm指向 所以 为了提高工作效率 就采用了nrm的方式来管理多个npm仓库 老规矩 先举一个 For example 当前有两个仓库指向 分别是 公
  • PyCharm安装教程最新版(社区版)

    1 官网下载地址 PyCharm the Python IDE for Professional Developers by JetBrains 2 安装 直接Install进行安装 最后点击finish即可 3 新建项目并测试 新建一个项
  • 线程安全分析

    1 成员变量和静态变量是否线程安全 如果它们没有被共享 则线程安全 如果它们被共享了 根据它们的状态是否能够改变 又分两种情况 如果只有读操作 则线程安全 如果有读写操作 则这段代码是临界区 需要考虑线程安全 2 局部变量是否线程安全 局部
  • 编译工具Make

    文章目录 make指令 指定目标 隐藏指令 通配符 伪目标 多目标 Makefile的命令 变量 变量的基础 赋值变量 函数调用 字符串操作函数 文件名操作函数 循环函数 条件判断函数 条件判断语句 隐式规则 隐式规则举例 隐式规则中的变量
  • Linux性能监控 -- vmstat命令

    文章目录 示例 字段说明 示例 输入vmstat命令后 第一个参数表示每1秒获取一次服务器资源 第二个参数表示总共获取10次 若第二个参数不设置 则表示持续获取服务器资源 字段说明 数据项 含义 r 表示有多少任务需要CPU执行 通常与后5
  • Button与ImageButton的点击监听事件-onClick

    Button与ImageButton自身都有一个onClick点击事件 通过自身的 setOnClickListener OnClickListener 的方法添加点击事件 所有控件都有一个OnClick事件 通过点击事件的监听可以实现点击
  • 吐血总结《Mysql从入门到入魔》,图文并茂

    文章目录 1 数据库操作 1 1显示数据库 1 2 创建数据库 1 3 使用数据库 1 4 查看当前数据库 1 5 删除数据库 2 表操作 2 1 创建表 2 2 更新表 2 2 1 添加列 2 2 2 删除列 2 3 查看表结构 2 4
  • CTF基本赛制与题型

    CTF简介 CTF的全称为Capture The Flag 即夺旗赛 CTF竞赛活动蓬勃发展 已成为了锻炼信息安全技术 展现安全能力和水平的绝佳平台 CTF号称计算机界的奥林匹克 CTF目标 CTF参赛队伍的目标为获取尽可能多的flag 参
  • 随机抽样一致性算法(RANSAC)示例及源代码

    作者 王先荣 大约在两年前翻译了 随机抽样一致性算法RANSAC 在文章的最后承诺写该算法的C 示例程序 可惜光阴似箭 转眼许久才写出来 实在抱歉 本文将使用随机抽样一致性算法来来检测直线和圆 并提供源代码下载 一 RANSAC检测流程 在
  • maven死活下载不了jar包的问题

    对应 问题6 选择适合自己的更新方式 通过排除法排除过的问题 1 idea版本问题 换了4个版本都有问题 2 电脑问题 差点重装 3 网络问题 换了手机网络一样不行 4 仓库 xml配置 或者maven插件版本的问题 试了很多版本 包括id
  • Spring Boot整合fastjson

    SpringBoot在构建RESTful风格的web服务时 默认使用的是Jackson作为JSON解析器 个人使用比较习惯的 json 框架是 fastjson 所以 spring boot 默认的 json 使用起来就很陌生了 所以很自然
  • Dynamics CRM: 使用setFilterXml来过滤需要在表单的Subgrid控件中进行展示的记录

    我们经常在表单中会用到subgrid控件 通常在一个表单中插入subgrid用来显示另外一个实体中的记录 而显示的内容我们是通过定义不同的视图来进行显示的 也可以通过javascript来进行一些控制 今天这篇博文我们使用另外一种方法来实现
  • KDUpdater 入门 (Qt5)

    KDTools 2 3 0 是KDAB公司的一个Qt4工具包 采用商业 GPL LGPL 三重授权 http www kdab com kdab products kd tools 该工具包中包含一个KDUpdater的组件 为Qt程序的自
  • t-SNE降维算法详解(附matlab代码)

    什么是t SNE t SNE的主要用途是可视化和探索高维数据 它由Laurens van der Maatens和Geoffrey Hinton在JMLR第九卷 2008年 中开发并出版 t SNE的主要目标是将多维数据集转换为低维数据集
  • 计算机视觉目标检测流程

    个人接触机器视觉的时间不长 对于机器学习在目标检测的大体的框架和过程有了一个初步的了解 不知道对不对 如有错误 请各位大牛不吝指点 目标的检测大体框架 目标检测分为以下几个步骤 1 训练分类器所需训练样本的创建 训练样本包括正样本和负样本
  • 线程池面试题

    线程池面试题 1 Executor 框架三大组成部分 2 ThreadPoolExecutor 类 线程池执行器 核心 2 1 ThreadPoolExecutor 3 个最重要的参数 2 2 ThreadPoolExecutor 饱和策略
  • 电机四象限运行

    电机四象限模式 前言 电机单象限模式 电机四象限模式 电机控制中的两象限和四象限程序 两象限程序 四象限程序 前言 在主机厂工作中常常提到四象限和两象限程序 对于电驱运行方式的四象限运行不是很熟悉 学习一下 做下笔记 以防止遗忘 个人理解
  • 成功解决 XXX--1.0-SNAPSHOT.jar中没有主清单属性

    问题描述 在运行使用maven打包的项目之后 运行项目发现主类没有找到 提示XXX 1 0 SNAPSHOT jar中没有主清单属性 问题原因 maven在打包时没有配置主类 解决方案 如果您使用的是Springboot框架 那么只需要在p
  • elasticsearch7.8.0 win指定jdk版本

    修改 elasticsearch env bat 文件 set JAVA HOME D elasticsearch 7 8 0 jdk if JAVA HOME set JAVA ES HOME jdk bin java exe set J
  • Python学习6.1类与对象

    一 类的定义 1 类的组成 类属性 实例方法 静态方法 类方法 eg 输入 class Student native place 云南 类属性 def init self name age self name name self age a