首页 > 编程语言 >python基础学习5-面向对象

python基础学习5-面向对象

时间:2024-02-13 09:05:18浏览次数:27  
标签:__ python self 学习 面向对象 对象 拷贝 age def

    创建 class 类名 (): # 类名首字母大写,()可写可不写         pass
  1. 对象
    对象名 = 类名()
  1. 类的组成
    class Student:       school ='北京xx学校' # 类属性,定义在类中方法外的变量       # 初始方法       def __init__ (self,xm,age):       self.name = xm # 左侧是实例属性,右侧是局部变量,实例属性名跟局部变量名可以一样       self.age = age       # 定义在类中的函数成为实例方法,自带参数self       def show(self):         print(self.name)         print(self.age)       # 静态方法       @staticmethod       def sm():         print() # 这是一个静态方法,不能调用实例属性,也不能调用实例方法       @classmethod       def cm(cls):         print() # 这是一个类的方法,不能调用实例属性,也不能调用实例方法
  1. 动态绑定属性名和方法
    class Student:       school ='北京xx学校'       def __init__ (self,xm,age):         self.name = xm         self.age = age       def show(self):         prinf()     stu = Student('韩梅梅',18)     stu.gender = '女'     def introduce():       print()     stu.fun = introduce
  1. 面向对象的三大特征: 封装、继承、多态
  2. 无下划线为普通的,可供内部外部本身,子类使用,单下划线 受保护的,只供本身和子类使用,双下划线开头,私有成员,只允许本身使用,首位双下划线,供特殊使用,如__init__
  3. dir(对象名) 返回对象所有属性方法
  4. 在类里面使用@property 修改方法转化成属性使用
  5. 在类里面使用@f方法名称.setter 修改属性
  6. 类的继承
    class 类名(父类1,父类2.。。父类n):       pass
  1. object类
    __new__() 系统创建对象自动执行     __init__()     __str__() 返回对象的内存地址描述信息
  1. 继承多个父类,调用__base__时显示继承的第一个类
  2. 类的深拷贝和浅拷贝
    深拷贝:使用copy的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象都不相同 copy.deepcopy()     浅拷贝:拷贝时,对象包含的子对象不拷贝,因此,源对象和拷贝对象会引用同一个子对象 copy.copy()      

标签:__,python,self,学习,面向对象,对象,拷贝,age,def
From: https://www.cnblogs.com/foxing/p/18014302

相关文章

  • python turtle库的初步认识
    pythonturtle库的初步认识一、设置主窗体的大小与位置.....turtle.setup(宽,高,与屏幕左侧的像素距离,与屏幕右侧的像素距离) #后两个数值为None时,该方向则默认居中二、画笔控制......turtle.penup() #抬起画笔,表示移动画笔不绘制形状turtle.pendown() #落下画笔,表示移......
  • Python 基本数据类型——数字类型
    Python基本数据类型——数字类型一、数字类型1、整数进制引导符号举例十进制无1234二进制0b0B0b10101八进制0o0O0o732十六进制0x0X0xABC取值范围理论上可取遍所有值,但是实际上受限于内存大小2、浮点数0.0,10.2,-1.23科学计数法:9.......
  • 2024/2/12学习进度笔记
    sparkrdd持久化frompysparkimportSparkContext,SparkConfimportosimportrefrompyspark.storagelevelimportStorageLevelos.environ['SPARK_HOME']='/export/server/spark'PYSPARK_PYTHON="/root/anaconda3/envs/pyspark_env/bin......
  • defer slice 和 map 面向对象的特征
    5、deferdefer语句被用于预定对一个函数的调用。可以把这类被defer语句调用的函数称为延迟函数。defer作用:●释放占用的资源●捕捉处理异常●输出日志结果如果一个函数中有多个defer语句,它们会以LIFO(后进先出)的顺序执行。  recover错误拦截运行时panic异常......
  • Suffix Array:后缀数组学习笔记
    后缀排序后缀排序,顾名思义就是给后缀排个序。朴素做法是\(O(n^2\logn)\)的,无法接受。因此诞生了基于倍增思想的后缀排序算法。其中倍增思想在集训队论文中讲得很好,在此不再赘述。这里主要讲代码实现。constintN=2e6+10;chars[N];intn,m,sa[N],rk[N],tp[N],b[N];void......
  • (视频)嵌入式学习
    嵌入式开发开发环境交叉开发环境:串行、局部以太网、OCD链接在一起,内部通过通信协议建立逻辑链接特点:运行在不同环境可以独立运行调试器完成装载外部通信调试器发出调试信号可以调试不同指令集兼有编译器:Glibc,KEIL调试方式插桩:增加一些器件,实现交叉调试片上调试:在......
  • 线段树分治学习笔记
    线段树分治线段树分治是一种可以离线处理带撤销问题的常用手段。一般而言,题目中加入操作很好维护,但删除操作不好维护,这时可以对时间维建线段树,把每一个操作加入其存在时间段对应的线段树节点上,然后处理所有询问,进入一个节点时将这个节点里的操作加入,递归左右儿子,然后撤销这一次做......
  • 快速幂学习笔记
    我们不妨先来看一道例题了解一下快速幂:【模板】快速幂Atemplate.观察到数据,\(a,b\le2^{31}\),普通的乘法是肯定不行的。因此考虑优化:快速幂。什么是快速幂?顾名思义,就是快速地求出幂(\(a^b\))。怎么快速地求出幂?将\(a^b\)展开,可得:\[a^b=\underbrace{a\timesa\timesa......
  • boruvka 算法学习笔记
    boruvka算法就是最小生成树B算法。B算法的思路是每次对每个连通块,求出它能连出去的权值最小的边,然后再按边权从小到大合并。由于每次操作连通块数至少减半,所以复杂度是\(O(m\logn)\)。1.CF1305GKuroniandAntihype题意:长为\(n\)的数列\(a\),现在要选择全部数,每一次你......
  • [Blazor WebAssembly] 学习随笔——组件1.微信弹框(WXDialog)
    总有以下的需求:等待用户确认,就是有【确定】和【取消】按钮,有个标题和内容的弹框(比如:您确定要删除吗?)就是告知一下,就是上面的【取消】按钮不显示(比如:保存成功!)莫有按钮,几秒钟后自己消失,就是所谓的toast(比如:已完成)莫有按钮,需要发送命令才能消息(比如:数据加载中)一开始犯了经验主......