python类描述

一篇文章带你搞懂Python中的类 前言 今天我们要说的是面向对象的核心-----类,类能帮我们把复杂的事情变得有条理,有顺序,希望大家通过学习类能改善自己的编码风格,使代码变得更为好看,更加通俗易懂。 1.类的用法 一、什么是类 类(class),作为代码的父亲,可以说它包裹了很多有趣的函数和方法以及变量,下面我们试着简单创建一个吧。 这样就算创建了我们的第一个类了。大家可以看到这里面有一个self,其实它指的就是类aa的实例。每个类中的函数只要你不是类函数或者静态函数你都得加上这个self,当然你也可以用其他的代替这个. 阅读详情

类的说明

类是面对对象编程最重要的工具(Object-oriented programming),对象(object)是类(class)的一个实例(instance),例如一个圆,半径可能是5,可能是15,具体半径的圆就是实例化后的对象,圆就一个类。一个矩形,长和宽分别是5,3,矩形是类,指定了矩形的属性(attribute)就是一个对象。同样一个类还可以包含对应的方法(method),圆可以是获取圆的周长或者面积,矩形同样也是。
由此可知,一个类通常由数据域(data fields)和方法(method)组成,当然还包括构造函数(init)

python类的私有变量通过变量名前加上两个下划线(__),私有变量在类外不能直接更改或者访问,需要通过set和get函数来访修改及访问

下面介绍如何描述一个类

UML描述类

采用UML Class Diagram描述一个类

Circle
radius:float
Circle(radius = 1:float)
getArea():float
getPerimeter():float
setRadius(radius:float):None

采用UML描述一个类,主要是三个部分:

第一部分

类名(circle)

第二部分

数据域(data fields),包括类数据名称和数据类型(数据名称:数据类型)

第三部分

是方法(method)。包括构造函数(constructor)和一般的方法(method)
构造函数的描述:
类名(参数名称=默认值:参数类型)
一般方法的描述:
方法名称(参数名称:参数类型)

UML示例2

TV
channel:int
volumeLevel:int
on:bool
TV()
turnOn():None
turnOff():None
getChannel():int
setChannle(channel:int):None
getVolume():int
setVolume(volumeLevel:int):None
channelUp():None
channelDown():None
volumeUp():None
volumeDown:None

关于self

类内的变量需要用self.para表示,这个变量的作用域是整个类,例如圆的半径,用self.radius表示
构造函数(初始化函数)self后面的变量是构造函数的参数,用来初始化类内变量的。通常在构造类的时候作为参数传递初始化对象
如果初始化对象不需要参数,例如下面的tv,就不用传参数。

类定义示例代码

class TV:
    def __init__(self):
        self.channel = 1
        self.volumeLevel = 1
        self.on = False

    def turnOn(self):
        self.on = True
            
    def turnOff(self):
        self.on = False
            
    def getChannel(self):
        return self.channel
    
    def setChannel(self, channel):
        if self.on and 1 <= channel <= 120:
            self.channel = channel
        
    def getVolume(self):
        return self.volumeLevel
    
    def setVolumeLevel(self, volumeLevel):
        if self.on and 1 <= volumeLevel <= 7:
            self.volumeLevel = volumeLevel
        
    def channelUp(self):
        if self.on and self.channel < 120:
            self.channel += 1
            
    def channelDown(self):
        if self.on and self.channel > 1:
            self.channel -= 1
            
    def volumeLevelUp(self):
        if self.on and self.volumeLevel < 7:
            self.volumeLevel += 1
            
    def volumeLevelDown(self):
        if self.on and self.volumeLevel > 1:
            self.volumeLevel -= 1
            
     def show(self):
     	print('current channel:{:d},current volumeLevel:{:d}'.format(self.channel,
     	self.volumeLevel))

类使用示例代码


```python
def main2():
    tv1 = TV()
    tv1.turnOn()
    tv1.getChannel()  # 1
    tv1.getVolumeLevel()  # 1
    tv1.show()

    tv1.setChannel(5)
    tv1.setVolumeLevel(5)
    tv1.getChannel()  # 5
    tv1.getVolumeLevel()  # 5
    tv1.show()

    tv1.channelDown()
    tv1.volumeLevelDown() 
    tv1.getChannel()   # 4
    tv1.getVolumeLevel()  # 4
    tv1.show()

Python元类原理:从描述符到元类的完整链条 Python的“元类(Metaclass)”常被称为“魔法中的魔法”,但它并非空中楼阁——其底层逻辑与“描述符(Descriptor)”密切相关。描述符的工作原理与实际用途类创建的底层流程(从命名空间到类型实例化)元类如何控制类的生成与行为描述符与元类的协同机制(如属性验证、类型约束)用“快递驿站”案例引出属性访问的异常现象讲解描述符的定义与三种协议方法(__get____set____delete__分析类创建的三阶段流程(命名空间→类型实例化→元类调用) 阅读详情

相关推荐

Python类特性描述

文档对Python语言提供的特殊方法进行了梳理,基于特性访问、可调用对象、集合、数字、上下文和迭代器做分类。

Python 类的介绍

在Python中的,类时一种面向对象编程的机制,用于描述具有相同属性的和方法的对象的集合。类定义了一组属性和方法,可以用来创建对象的模板。类定义了一组属性和方法,可以用来创建对象的模板。类可以看作一种自定义的数据类型,它可以包含多个实例,每个实例都具有相同的属性和方法。类的定义通常包括类名、属性和方法在类定义中,我们可以定义类属性、类方法、实例属性和实例方法等。类属性是整个类的属性,可以通过类名来访问。实例属性是属于实例的属性,只能通过实例名来访问。类方法和实例方法是类中的函数,可以用来执行特定的操作。

m0_74760082的博客 2481

NX/UG二次开发—CAM—设置程序修剪边界Boundary

最近做了一个设置CAM程序边界的小工具,分享一下经验(官方的代码在文章末尾处),以下均以修剪边界曲线为例。 以下为官方提供的源码: /***************************** Include Files **********************************/ #include <stdlib.h> #include <uf.h> #include <uf_obj.h> #include <uf_object_type

门前大桥下,游过一群鸭,快来看一看,原来是C++ 3733

Python中的类说明

目录 9.1. 术语相关 9.2. Python 作用域和命名空间 9.2.1. 作用域和命名空间示例 9.3. 初识类 9.3.1. 类定义语法 9.3.2. 类对象 9.3.3. 实例对象 9.3.4. 方法对象 9.3.5. 类和实例变量 9.4. 一些说明 9.5. 继承 9.5.1. 多继承 9.6. 私有变量 9.7. 补充 9.8. 异常也是类 9.9. 迭代器 9.10. 生成器 9.11. 生成器表达式 Python 的类机制通过最小的新语法和语义在语

jk_101的博客 1362

蓝牙抓包实战:用nrf52840和Wireshark解析广播包与SCAN_RSP的完整流程

本文提供了一份完整的蓝牙抓包实战指南,详细介绍了如何使用nRF52840 Dongle和Wireshark捕获并解析蓝牙广播包与SCAN_RSP。内容涵盖环境搭建、广播事件分析、数据包结构拆解以及常见连接问题的调试技巧,旨在帮助开发者和物联网工程师深入理解BLE底层通信,提升硬件调试能力。

weixin_29279153的博客 495

LSTM模型 轨迹经纬度预测

原始时间序列数据如下所示,我们只取前两列纬度和经度作为输入数据 我们设定用前六个位置信息预测下一个位置,则两个样本的输入输出数据如下所示: 创建LSTM网络训练模型: import numpy as np from keras.layers.core import Dense, Activation, Dropout from keras.layers import LS...

Muzi_Water的博客 2万+

python类介绍

一.类的定义--class关键字1. 类是用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。使用class语句来创建一个新类,class之后为类的名称(User)并以冒号结尾,类的组成包括成员变量(name,age)和成员函数(who),如下实例:classUser: name='zhzhgo' age=2...

weixin_34416754的博客 170

5分钟搞懂基因组规模代谢网络(GSMM):从数据库选择到模型构建全流程

本文详细解析基因组规模代谢网络(GSMM)构建的全流程,从数据库选择到模型优化。重点介绍MetaCyc、BiGG等主流数据库的黄金三角评估法则,对比自上而下与自下而上两种建模方法,并提供模型修剪、仿真优化的实用技巧与避坑指南,帮助研究者高效构建精准代谢网络模型。

weixin_30872157的博客 135

Python--类(讲解)

创建(定义)类。创建类的实例对象,通过实例对象实现特定的功能。class 类名:多个(≥ 0 )类属性 . . . 多个(≥ 0 )类方法 . . .注意:无论类属性还是类方法,都不是必须的,还有就是类属性和类方法的位置是任意的,没有固定的先后顺序。但一般都是属性在前,方法在后。

生而无畏,战至终章 2万+

深入解析.Net中SM2与sm-crypto的跨平台加解密实践

本文深入探讨了在.Net平台与前端sm-crypto库之间实现SM2国密算法跨平台加解密的实践方案。针对对接中常见的密钥格式、密文拼接顺序(C1C3C2与C1C2C3)等核心难点,提供了基于BouncyCastle的完整工具类实现、前后端联调示例及问题排查指南,旨在帮助开发者构建安全、兼容的数据加密通道。

weixin_29322855的博客 369

Gazebo仿真平台模型搭建与修改

ROS里踩过的坑(一)Gazebo仿真平台模型搭建与修改文件讲解Models 文件World文件Launch文件模型编辑可视化编辑配置文件编辑模型展示如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出...

Redglass的博客 1万+

python 描述符类_详解Python中的Descriptor描述符类

描述符是调和属性访问的一个类。描述符类可用来获取、设置或删除属性值。描述符对象是在类定义的时候构建在一个类中的。一般来说,描述符是一个具有绑定行为的对象属性,其属性的访问被描述符协议方法覆写。这些方法是__get__()、 __set__()和__delete__(),一个对象中只要包含了这三个方法(译者注:包含至少一个),就称它为描述符。属性访问的默认行为是从一个对象的字典中获取 (get)、设...

weixin_39707693的博客 242

【STK】手把手教你利用STK进行关联分析仿真01-STK/CAT模块介绍

今天主要介绍接近分析工具CAT。

weixin_44184852的博客 1106

Python系列 67 描述符类

描述符类 我们在之前接触了代理属性@property装饰器,它其实就是一个描述符,本质上而言是一个新式类。 如果想自定义一个描述符类,则必须实现以下三种双下方法的任意一个或多个: __get__():获取描述符类实例时,触发该方法 __set__():设置描述符类实例时,触发该方法 __delete__():删除描述符类实例时,触发该方法 于此同时还需要注意在定义描述符类时的2点细节: 描述符类本身应该定义成新式类,被代理的类也应该是新式类 必须把描述符实例定义成这个类的类属性,不能定义到__init

weixin_43422005的博客 369

【系统架构设计师】预测试卷一:综合知识(75道选择题)

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,架构风格反映领域中众多系统所共有的结构和 (48),强调对架构(49)的重用。 (48) A. 语义特性 B. 功能需求 C. 质量属性 D. 业务规则 (49) A. 分析 B. 设计 C.实现

数据知道的博客 7766

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【Python高级类技术解密】从元类到描述符的终极指南

本文通过15个企业级案例,深入剖析Python类的底层原理与高阶应用,揭示元类、描述符、抽象基类等核心技术的工程实践,助力开发者掌握面向对象编程的终极武器。

赶紧的博客 1214

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python 描述符类_Python之路(十二):描述符,类装饰器,元类

描述符描述符(__get__,__set__,__delete__) # 这里着重描述了python的底层实现原理1、描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议。__get__():调用一个属性时,触发__set__():为一个属性赋值时,触发__delete__():采用d...

weixin_39927683的博客 120

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python描述符应用_python 类 描述符及应用

#描述符可以实现大部分python类特性中的底层魔法,包括,@classmethod @staticmethod @property甚至是__slots__# class Typed:# def __init__(self,key,expected_type):# self.key=key# self.expected_type=expected_type#...

weixin_39545269的博客 100

python笔记(十二):描述符,类装饰器,元类

描述符() # 这里着重描述了python的底层实现原理描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),(),()中的一个,这也被称为描述符协议。():调用一个属性时,触发():为一个属性赋值时,触发():采用del删除属性时,触发描述符是干什么的:描述符的作用是(必须把描述符定义成这个类的类属性,不能定义到构造函数中)描述符应用在什么时候,什么地方描述符分为俩种形式。一、描述符本身应该定义成新式类,被代理的类也应该是新式类。

baikai666的博客 486

python类属性描述_Python属性、方法和类管理系列之----描述符类

什么是描述符类?根据鸭子模型理论,只要具有__get__方法的类就是描述符类。如果一个类中具有__get__和__set__两个方法,那么就是数据描述符,。如果一个类中只有__get__方法,那么是非数据描述符。__get__:当我们用类或者实例来调用该属性时,Python会返回__get__函数的结果。__set__:当我们用实例来设置属性值时,Python会调用该函数。对类没有限制作用。__d...

weixin_39942037的博客 225

python描述符详解_python 什么叫描述符类? 描述符类详解(特别说明:在描述符类中,self指的是描述符类的实例)...

描述符类:作用:描述另外一个类的属性(类包括属性和方法)定义:至少实现了get()、set()、delete()中的一个_ get_():调用一个属性时触发_ set_():为一个属性赋值时触发_ delete_():采用del删除属性时触发class Colour:``` Colour为描述符类```def __get__(self, instance, owner):print('self i...

weixin_39832643的博客 170

假装Python高手,你真的懂属性描述符类!

Python学了好几年,发现功力还是那样,很多同学经常这样抱怨!都说Python入门容易,精通难,确实是这样的,每当我们打开一些牛逼的源码框架,进去看窥探大牛的源码,比如Python里面非...

cainiao_python的博客 179

python 描述符类_Python学习——面向对象高级之描述符

在写上一篇文章的时候遇到了描述符,本来以为很简单,看了一些别人写的博客,结果发现远不如我想的那么简单,一大堆概念向我砸过来,一时间难以接受,不甚理解,需要反反复复的斟酌,才能大致明白其用意与用法。所以决定把面向对象描述符部分单独拿出来写一篇文章,但愿写出来之后,过几天我自己还能看的明白。什么是描述符官方说法:python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访...

weixin_30533933的博客 249

python中的描述器及元类

描述器(set, get, del) 在类中, 只要有这三个魔法方法中的一个,这个类就是描述器,对应的 getattr和setattr以及delattr方法失效 class GitInt: ...: def __init__(self): ...: pass ...: def __get__(self, instance, ower): ...: print('instance is', instance) ...:

weixin_42861958的博客 175

python类变量和描述符_Python属性、方法和类管理系列之----描述符类

什么是描述符类?根据鸭子模型理论,只要具有__get__方法的类就是描述符类。如果一个类中具有__get__和__set__两个方法,那么就是数据描述符,。如果一个类中只有__get__方法,那么是非数据描述符。__get__:当我们用类或者实例来调用该属性时,Python会返回__get__函数的结果。__set__:当我们用实例来设置属性值时,Python会调用该函数。对类没有限制作用。__d...

weixin_39913141的博客 86
上一篇: 1660ti显卡、ubuntu16.04中安装显卡驱动,cuda, cudnn
下一篇: pytorch固定部分参数进行网络训练
miss_future
博客等级 码龄9年 6粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值