Python 面向对象静态方法、类方法、属性方法知识点小结


Posted in Python onMarch 09, 2020

本文实例讲述了Python 面向对象静态方法、类方法、属性方法知识点。分享给大家供大家参考,具体如下:

(1)静态方法--》-@staticmethod装饰类中方法

只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性

class Dog(object):
  def __init__(self,name):
    self.name = name
  @staticmethod #实际上跟类没什么关系了
  def eat(self):
    print("%s is eating %s" %(self.name,'dd'))
  def talk(self):
    print("%s is talking"% self.name)
d = Dog("Td")
d.eat(d)

(2)类方法-----》  @classmethod装饰类中方法

只能访问类变量,不能访问实例变量

@classmethod
  def eat(self):
    print("%s is eating %s" %(self.name,'dd'))

(3)属性方法----》 @property #attribute装饰类中方法

把一个方法变成一个静态属性

@property #attribute
  def eat(self):
    print("%s is eating %s" %(self.name))
# 调用
Dog("TD").eat

1.需要将一个值传递给eat属性方法-----修改属性值?

存在的问题是变成属性了直接赋值是无法实现的,需要在重新相同的方法,同时将该方法加上@eat.setter进行装饰。

@property   #attribute
  def eat(self):
    print("%s is eating %s" %(self.name,self.__food))
  @eat.setter
  def eat(self,food):
    print("set to food:",food)
    Self.__food=food

2.删除属性---同名方法使用  @eat.deleter修饰

@property   #attribute
  def eat(self):
    print("%s is eating %s" %(self.name,self.__food))
  @eat.deleter
  def eat(self):
    del self.__food

总结:

1. 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法。

2. 类方法通过@classmethod装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量。

3. 属性方法的作用就是通过@property把一个方法变成一个静态属性,调用时与调用属性的方式相同。

   3.1 把一个方法变成静态属性的作用:

当某个属性的值是一系列动作后才得到的结果。所以每次调用时,其实它都要经过一系列的动作才返回结果的,但这些动作过程不需要用户关心,用户只关心得到这个属性的值即可,也就是说用户只需要调用这个属性就可以了。

   (1)修改属性值

  将由@proerty装饰器(把一个方法变成一个静态属性)使用@proerty.setter装饰器再装饰一下,此时 你需要写一个新方法(同名), 对这个属性值进行更改。

   (2)删除属性

   #1:将由@proerty装饰器(把一个方法变成一个静态属性)使用@proerty.deleter装饰器再装饰一下,此时 你需要写一个新方法(同名)。

   #2:使用del删除该实例所对应的属性方法(属性) 例如:del 对象.属性

源码学习地址:https://gitee.com/FelixBinCloud/PythonLearn/commit/bad7a51da107bec6b2b2db697318a6935847d208

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中字符串的格式化方法小结
May 03 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
python3.x上post发送json数据
Mar 04 Python
Python实现的序列化和反序列化二叉树算法示例
Mar 02 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
python单例模式原理与创建方法实例分析
Oct 26 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
python非标准时间的转换
Jul 25 Python
python微信公众号开发简单流程实现
Mar 09 #Python
Python 面向对象部分知识点小结
Mar 09 #Python
Django跨域资源共享问题(推荐)
Mar 09 #Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 #Python
Python模块相关知识点小结
Mar 09 #Python
Django操作session 的方法
Mar 09 #Python
Python装饰器用法与知识点小结
Mar 09 #Python
You might like
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
简介Django中内置的一些中间件
2015/07/24 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
劳动模范事迹材料
2014/01/19 职场文书
国旗下的演讲稿
2014/05/08 职场文书
借款担保书范文
2014/05/13 职场文书
社区志愿者活动总结
2014/06/26 职场文书
员工趣味活动方案
2014/08/27 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
教师见习报告范文
2014/11/03 职场文书
投诉书格式范本
2015/07/02 职场文书
大学运动会通讯稿
2015/07/18 职场文书