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开发之文件操作用法实例
Nov 13 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python 含参构造函数实例详解
May 25 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
Python 移动光标位置的方法
Jan 20 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
Python编写带选项的命令行程序方法
Aug 13 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
Feb 19 Python
MATLAB 全景图切割及盒图显示的实现步骤
May 14 Python
python办公自动化之excel的操作
May 23 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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查询搜索引擎排名位置的代码
2010/01/05 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
python操作MySQL数据库的方法分享
2012/05/29 Python
Python3.2中的字符串函数学习总结
2015/04/23 Python
python算法表示概念扫盲教程
2017/04/13 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
如何在python中写hive脚本
2019/11/08 Python
python集合删除多种方法详解
2020/02/10 Python
python输出pdf文档的实例
2020/02/13 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
Python matplotlib可视化实例解析
2020/06/01 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
大学军训感言600字
2014/02/25 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
领导干部作风建设总结
2014/10/23 职场文书
考博导师推荐信范文
2015/03/27 职场文书
单位计划生育责任书
2015/05/09 职场文书
护理工作心得体会
2016/01/22 职场文书