IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 关于类的实例方法、静态方法、类方法的用途,使用代码解释说明 -> 正文阅读

[Python知识库]关于类的实例方法、静态方法、类方法的用途,使用代码解释说明

经过研究个人总结如下,如有不对欢迎留言讨论:
1、类方法,用来管理类属性,类和实例都可以访问,调用返回值没有区别
2、实例方法,用来管理实例属性,实例访问
3、静态方法,用来作为类里面的工具箱,类和实例都可以访问
另外
1.类属性只有通过类名.属性名来修改,并且会影响所有的实例对象。而通过实例.类属性名修改,只影响实例的属性值,而类属性或其他子类对象值不变
2.实例属性,只能通过实例.属性名访问,不能用类名.属性名访问
3.实例方法可以通过类和实例.方法名访问,但是:
实例.方法名()调用时候,会自动传递实例对象作为self传入
类名.方法名 ()调用时候,需要手动传入实例对象,否则报错

# 创建一个带计数器功能的矩形类
class Rectangle():
    __count_num=0#定义一个私有类属性用来计数,因为是类属性故类和每个实例对象中都会有这个属性
    def __init__(self,height,width):
        '''
        初始化矩形类,有两个参数:
        height:高度
        width:宽度
        两个参数均设置为私有,又由于其在实例方法中,故为私有实例属性
        '''
        self.__height=height
        self.__width=width
        self.__count=self.__count_result()#计数器也设置为私有对象属性
        '''使用类方法实现计数,如果去掉这行,直接用实例.
        方法名调用计数,会发现每调用一次方法就加一,而
        不是每实例化一次加一,会导致错误'''
    # 设置一个静态方法用于判断数字是否大于0,相当于类中工具箱中的一种工具,用于其他方法设置数值时进行判断
    @staticmethod
    def value_check(num):
        if num>0:
            return num
        else:
            raise ValueError('请输入一个大于零的数字')
    # 对两个私有实例属性使用property进行设置
    @property#使用property封装后,实现只可访问,不能修改
    def count(self):
        return self.__count
    @property
    def height(self):
        return self.__height
    @height.setter
    def height(self,value):
        self.__height=self.value_check(value)#使用静态方法value_check对数值进行验证判断
    @property
    def width(self):
        return self.__width
    @width.setter
    def width(self,value):
        self.__width=self.value_check(value)#使用静态方法value_check对数值进行验证判断
    # 接下来实现计数功能,由于是对私有类属性进行变更,故使用类方法
    @classmethod
    def __count_result(cls):#此处设置为私有方法避免从实例访问,否则每访问一次就会导致加一
        cls.__count_num+=1
        return cls.__count_num
r1=Rectangle(10,20)
r2=Rectangle(20,30)
# r1.count=10 #如果不将count设置为私有,那么一旦这里重新赋值就会导致计数器错误
print(r1.count)
print(r1.count)
print(r1.count)
print(r2.count)
print(r2.count)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:28:05  更:2022-03-15 22:30:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:25:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码