当前位置: 首页 > news >正文

python04——类(基础new)

类其实也是一种封装的思想,类就是把变量、方法等封装在一起,然后可以通过不同的实例化对其进行调用操作。

1.类的定义

class 类名:

        变量a

        def  __init__  (self,参数2,参数2...):初始化函数!!!

        其他方法函数。。。

注意:初始化函数只要是实例化调用该类,就会

2.类的实例化

实例化对象=类(参数)  #具体传参与否,传几个是要看 初始化函数 里面有几个参数需要

3.类变量 vs 实例化变量

一般在类中单独出现的就是类变量,类变量不会随着不同的实例化对象而改变,一般在类中的调用写法为“类名.变量”

实例化变量一般是在类的方法中出现的,不同的实例化对象对应的变量一般不同,一般在类中的写法为“self.变量名”

有时类变量和实例化变量的变量名相同,具体是类变量还是实例化变量要具体分析。

例子如下:

class people:name = "张三"  # 公共类变量__private_name = "李四"def __init__(self,name):self.name = name #只是与上面那个变量名字重了,不是一个东西(不管是self后面的还是等号后面的)self.__private_name = name #私有变量约定写法为 “__变量名”print("已经执行的初始化方法啦!")def canshu(self):print("公共类变量 是{},类变量是不会随着不同的实例化对象的 “传参” 而改变的,但是允许修改".format(people.name))print("公共实例化变量 是 {},""实例化变量的name值是与people类中第一处定义的“张三”不是一个变量,只是名字重了,""他会随着传入的参数而改变".format(self.name))print("私有实例化变量是{}".format(self.__private_name))people1=people("王五")#传入参数
print(people1.name)#这个是people1的name,是实例化变量,因此打印的是传入的参数,是init初始化里面的参数信息,不是类变量
people1.canshu()




4.继承 

继承就是子类虽然不写父类的方法、变量,但是实例化后,可以调用父类定义的方法、变量,也可以对其进行改写。

子类继承父类的写法:

class son_classname (father_classname):

        ......

        def __init__(self,...):

                .......

        .....

class father:father_temp = "父类类变量father_temp"father_temp1 = "父类的变量father_temp1 "def __init__(self):print("父类初始化函数")def f_func(self):print("父类的普通方法1")def f_func2(self, a):self.a = aprint("父类的实例化变量{}".format(a))class son(father):son_temp = "子的类变量son_temp "father_temp = "改变了父类的类变量father_temp————>son_ father_temp"def __init__(self):print("子类初始化函数")def s_func(self):print("子类普通方法")father1=father()
son1 = son()
son1.s_func()
print("------------------------------------")#子类继承父类的函数方法,所以在子类不写,也可调用此方法
son1.f_func()
son1.f_func2("son")
print("------------------------------------")
print(son1.son_temp)#子类的类变量
print(son1.father_temp1)#子类继承父类的类变量
print(son1.father_temp)#子类继承并改写父类的类变量
print("-------------------------------------")
print(father1.father_temp)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL Undo Log
  • 【MySQL】MySQL索引失效场景
  • AbyssFish单连通周期边界多孔结构2D软件
  • 【从零开始实现stm32无刷电机FOC】【理论】【3/6 位置、速度、电流控制】
  • c++:面向对象的继承特性
  • 防止应用调试分析IP被扫描加固实战教程
  • 随身WiFi市场乱象横生,随身WiFi测评最好的格行随身WiFi如何引领变革?
  • 【Oracle】Oracle数据库中的数据类型
  • LabVIEW自动测控与故障识别系统
  • 基于 KV Cache 实现流式 Self-Attention 序列解码
  • 镍氢电池性能不减,你敢信?
  • 前端发布项目后,解决缓存的老版本文件问题
  • MFC常见问题解决
  • 3个方法教你如果快速绕过Excel工作表保护密码
  • 【ARM 常见汇编指令学习 7.1 -- LDRH 半字读取指令】
  • (三)从jvm层面了解线程的启动和停止
  • 2017 年终总结 —— 在路上
  • 2017前端实习生面试总结
  • Angular Elements 及其运作原理
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • cookie和session
  • in typeof instanceof ===这些运算符有什么作用
  • JavaScript函数式编程(一)
  • Quartz初级教程
  • redis学习笔记(三):列表、集合、有序集合
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 构建二叉树进行数值数组的去重及优化
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 盘点那些不知名却常用的 Git 操作
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 一道闭包题引发的思考
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # 达梦数据库知识点
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #pragma 指令
  • #微信小程序(布局、渲染层基础知识)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C++哈希表01)
  • (Git) gitignore基础使用
  • (LLM) 很笨
  • (SERIES12)DM性能优化
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)Linux+Windows下安装ffmpeg
  • (转)创业的注意事项
  • (转)平衡树
  • (轉貼) UML中文FAQ (OO) (UML)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .Net core 6.0 升8.0
  • [10] CUDA程序性能的提升 与 流