方法的使用

静态方法

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

class Dog(object):
def __init__(self,name):
self.name = name # 静态方法实际上根类没什么关系,单纯变成一个函数。
@staticmethod
def eat(self,food):
print("%s is eating %s" %(self.name,food))

类方法

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

class Dog(object):
n = 333
def __init__(self,name):
self.name = name
   @classmethod #只能访问类变量
def eat(self,food):
print("%s is eating %s" %(self.n,food))

使用场景:只能用写死的类变量。

属性方法

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

class Dog(object):
n = 333
def __init__(self,name):
self.name = name
@property #把一个方便变为静态属性
def eat(self):
print("%s is eating %s" %(self.name,"dd"))
d = Dog("ChenRonghua")
d.eat

属性方法的用法

# 创建属性方法: @property
# 修改属性方法: @eat.setter
# 删除属性方法: @eat.deleter class Dog(object):
def __init__(self,name):
self.name = name
self.__food = None @property #把一个方便变为静态属性
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 @eat.deleter #属性方法删除
def eat(self):
del self.__food
print("删完了") d = Dog("ChenRonghua") #实例化
d.eat #不添加元素,输出
d.eat = "baozi" #赋值元素,需要两个同名函数
d.eat #赋值后输出
#输出结果
#ChenRonghua is eating None
#set to food: baozi
#ChenRonghua is eating baozi
#删完了

使用场景:对用户来讲不需要关心后台的工作,只需要一步实,例名.属性 执行就可以。

Python 静态方法,类方法,属性方法的更多相关文章

  1. python静态方法类方法属性方法

    Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的: 1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数: 2)从第1条,静态方法是无法访问 ...

  2. Python静态方法 类方法

    通常情况下,类中函数中定义的所有函数,,都是对象的绑定方法,除此之外,还有专门的静态方法和类方法,这两个是专门给类使用的,但是对象非要调用也是不会报错的. 对象在调用的时候会把自己传递给self,也就 ...

  3. python面向对象基础-属性/方法

  4. 面向对象【day08】:静态方法、类方法、属性方法(九)

    本节内容 概述 静态方法 类方法 属性方法 总结 一.概述 前面我们已经讲解了关于类的很多东西,今天讲讲类的另外的特性:静态方法(staticmethod).类方法(classmethod).属性方法 ...

  5. python基础--类的方法

    一:类的方法说明 类的方法分为实例方法,析构方法,构造方法,类方法,静态方法,属性方法,等等 类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用 类方法的隐含调用参数是类,而类实例方 ...

  6. Python面向对象静态方法,类方法,属性方法

    Python面向对象静态方法,类方法,属性方法 属性: 公有属性 (属于类,每个类一份) 普通属性 (属于对象,每个对象一份) 私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法: ...

  7. 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别

    [面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...

  8. Python 静态方法、类方法和属性方法

    Python 静态方法.类方法和属性方法 静态方法(staticmethod) staticmethod不与类或者对象绑定,类和实例对象都可以调用,没有自动传值效果,Python内置函数staticm ...

  9. python中静态方法、类方法、属性方法区别

    在python中,静态方法.类方法.属性方法,刚接触对于它们之间的区别确实让人疑惑. 类方法(@classmethod) 是一个函数修饰符,表是该函数是一个类方法 类方法第一个参数是cls,而实例方法 ...

  10. Python的程序结构[1] -> 方法/Method[1] -> 静态方法、类方法和属性方法

    静态方法.类方法和属性方法 在 Python 中有三种常用的方法装饰器,可以使普通的类实例方法变成带有特殊功能的方法,分别是静态方法.类方法和属性方法. 静态方法 / Static Method 在 ...

随机推荐

  1. 安装 RabbitMQ

    Ubuntu 16.04 安装 RabbitMQ #1 更新 $ sudo apt-get update $ sudo apt-get upgrade #2 安装Erlang $ cd /tmp $ ...

  2. Sping boot和mybatis整合

    在没有配置数据库时,注释这样@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 接下来我们DataSourceA ...

  3. 线程的条件Condiition

    条件Condition相当于给锁造钥匙,但是这钥匙是一次性的.一个线程拿到钥匙进去,出来之后钥匙没有归还,而是没了. 如下代码: from threading import Thread, Condi ...

  4. 11.17 flask (1)

    2018-11-17 18:38:42 开始学习进行玩前面项目  开始进军flask flask是一个小型的web框架,,但是有很多第三方组件 最后组装组装就和django一样啦!!!!!!! pyt ...

  5. php项目,别人无法访问自己(windows 系统)上Apache服务器原因(转载)

    别人无法访问自己电脑上的Apache服务器,其中最大的原因是因为Windows防火墙的因素. 1.有安装防火墙的,把防火墙关闭 2.windows默认带防火墙的,进入 控制面板-系统和安全-Windo ...

  6. 24、设计模式、webpack

    利用静态属性:长驻内存 (一) 单例模式 概念:单个实例,只有一个对象,多次创建,返回同一个对象. 单例模式的核心:==确保只有一个实例==,并提供全局访问. //利用了静态属性:长驻内存 funct ...

  7. jquery的设计亮点

    jquery的亮点我目前学习到一下几点: 1.封装库利用window的挂载实现闭包. 库一定要封装来防止变量污染全局,方式要么对象,要么立即执行函数.jquery用了立即执行函数.因为立即执行函数里的 ...

  8. 原生js的remove方法代表删除节点

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. SQL Server 2008作业失败:无法确定所有者是否有服务器访问权限

    转自:http://www.mzwu.com/article.asp?id=3592 下午准备将服务器数据导一份到本地,连上服务器找数据库备份文件发现最后一次备份是7月1日,竟然十几天没生成新备份,查 ...

  10. InnoDB中锁的算法(2)

    Ⅰ.上节回顾 session1: (root@localhost) [test]> select * from l; +---+------+------+------+ | a | b | c ...