方法的使用

静态方法

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

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. Java字符串连接的多种实现方法及效率对比

    JDK 1.8(Java 8)里新增String.join()方法用于字符串连接.本文基于<Java实现String.join()和效率比较>一文,分析和比较四种自定义实现与String. ...

  2. gitlab服务器IP调整后修改domian或ip

    背景 本地搭建的gitlab 服务器,在 /etc/gitlab/gitlab.rb 中 external_url 通常是局域网ip的形式.如下所示 external_url 'http://192. ...

  3. 算法提高 金属采集_树形dp

    算法提高 金属采集   时间限制:1.0s   内存限制:256.0MB        问题描述 人类在火星上发现了一种新的金属!这些金属分布在一些奇怪的地方,不妨叫它节点好了.一些节点之间有道路相连 ...

  4. Nestjs 链接mysql

    文档 下插件 λ yarn add @nestjs/typeorm typeorm mysql 创建 cats模块, 控制器,service λ nest g mo cats λ nest g co ...

  5. MultipartFile实现文件上传

    一.主要有两个java类,和一般的servlet放在一起即可. 1.FileUploadBean.java package chb.demo.web;import org.springframewor ...

  6. 【node】node连接mongodb操作数据库

    1.下载第三方模块mongodb cnpm install mongodb --save 2.检测是否连接成功 1.引入第三方模块mongodb并创建一个客户端 const MongoClient = ...

  7. 微信小程序开发笔记03

    今天基本实现了微信小程序主要功能,页面还没有进行优化,有些功能还需完善. 页面之间的信息转化部分还未实现.

  8. 剑指offer——python【第56题】删除链表中的重复节点

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  9. java学习(三)--- 修饰符

    访问修饰符: default.public.private.protected 非访问修饰符 static: 静态方法,静态变量 final: final变量: final变量能够显示的初始化并且只能 ...

  10. Java 读取某文件下的所有文件的大小 并将所有文件的文件名,以及对应大小输出在xls表格里

    import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.In ...