python 实例方法,类方法,静态方法
实例方法
class Human(object):
def __init__(self, weight):
self.weight = weight
def get_weight(self):
return self.weight
person = Human(45)
person.get_weight()
1. instance method 就是实例对象与函数的结合。
2. 使用类调用,第一个参数明确的传递过去一个实例。
3. 使用实例调用,调用的实例被作为第一个参数被隐含的传递过去。
类方法
class Human(object):
weight = 12
@classmethod
def get_weight(cls):
return cls.weight
Human.get_weight()
1. classmethod 是类对象与函数的结合。
2. 可以使用类和类的实例调用,但是都是将类作为隐含参数传递过去。
3. 使用类来调用 classmethod 可以避免将类实例化的开销。
静态方法
class Human(object):
@staticmethod
def add(a, b):
return a + b
def get_weight(self):
return self.add(1, 2)
Human.add(1, 2)
Human().get_weight()
1. 当一个函数逻辑上属于一个类又不依赖与类的属性的时候,可以使用 staticmethod。
2. 使用 staticmethod 可以避免每次使用的时都会创建一个对象的开销。
3. staticmethod 可以使用类和类的实例调用。但是不依赖于类和类的实例的状态。
python 实例方法,类方法,静态方法的更多相关文章
- Python Class 的实例方法/类方法/静态方法
实例方法.类方法.静态方法 class MyClass(object): class_name = "MyClass" # 类属性, 三种方法都能调用 def __init__(s ...
- python——实例方法、静态方法、类方法、类变量和实例变量浅析
概述: 实例方法就是类的实例能够使用的方法. 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作.使用装饰器@staticmethod定义静态方法.类对象和实例都可调用静态 ...
- Python的实例方法,类方法,静态方法之间的区别及调用关系
如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是 ...
- python实例方法、静态方法和类方法
Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...
- python中实例方法,类方法,静态方法简单理解
按照字面名称来理解的话: 实例方法就是实例化对象的方法,绑定在实例对象上 类方法就是类自己的方法,不需要实例化对象,类自己就是对象,直接绑定在类上 静态方法就是普通的函数,函数作为对象,不过是封装在类 ...
- python 实例化 类方法 静态方法 成员变量 实例方法 等调用
1.参考代码如下 # coding:utf-8 class student: # 成员变量 ok = None like = '八戒你瘦了' # 实例方法 def __init__(self): # ...
- python 实例方法、静态方法、类方法
class Date: #构造函数 def __init__(self, year, month, day): self.year = year self.month = month self.day ...
- 面向对象~~类的成员: 私有成员,公有成员, 实例方法, 类方法, 静态方法, 属性(property), isinstance ,issubclass, 元类(type)
一 私有成员公有成员 公有成员: 在任何地方都能访问 私有成员: 只有在类的内部才能访问 类从加载时,只要遇到类中的私有成员,都会在私有成员前面加上_类名 二 实例方法 实例方法就是类的实例能够使用的 ...
- 关于python的类方法、实例方法和静态方法区别
python的类方法需要在方法前面加装饰器:@classmethod ,静态方法是在方法前面加装饰器:@staticmethod. 类方法.类属性是属于类自身,属于类自身的命名空间,和实例方法.实例属 ...
- Python高级笔记(五)--实例方法、静态方法和类方法
1. 类属性.实例属性 类属性在内存中只保存一份 实例属性在每个对象中都要保持一份 obj.__class__.country="xxx": 可以修改类属性 2. 实例方法.静态方 ...
随机推荐
- 6.6 安装IDEA
非常感谢Kevin指导.让我简化了安装步骤.安装包可以直接到我的公司文件夹中sunny文件夹中获取. 首先准备好安装包: 然后打开终端: 解压,进入bin目录,执行idea.sh;或者,直接运行: b ...
- UVaLive 5031 Graph and Queries (Treap)
题意:初始时给出一个图,每个点有一个权值,三种操作:(1)删除某个边:(2)修改每个点的权值:(3)询问与节点x在一个连通分量中所有点的第K大的权值. 析:首先是要先离线,然后再倒着做,第一个操作就成 ...
- App知识点汇总
1.Fragment 2.AndroidStudio 用夜神安卓模拟器调试 进入夜神模拟器安装目录下的bin目录,执行nox_adb.exe connect 127.0.0.1:62001,Andro ...
- matlab 矩阵运算技巧
1.a=a(:) 作用:将矩阵转化成列向量 a=[a11 a12 a13 a=[a11 a21 a12 a22 a13 a23]^T a21 a22 a23] ...
- 解析Xml文件的三种方式及其特点
解析Xml文件的三种方式 1.Sax解析(simple api for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用 ...
- mysql的性能优化总结
经验是从别人那里拿来的,不想直接复制黏贴,想亲自总结下,巴拉巴拉.........进入正题吧 一.为查询加入缓存 1.检查数据库是否开启缓存:show variables like '%query_c ...
- Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
#include<bits/stdc++.h>using namespace std;char s[100007];long long a[100007];long long dp[100 ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(3)
5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldTyp ...
- 洛谷P4121 [WC2005]双面棋盘(线段树套并查集)
传送门 先膜一下大佬->这里 据说这题正解是LCT,然而感觉还是线段树套并查集的更容易理解 我们对于行与行之间用线段树维护,每一行内用并查集暴力枚举 每一行内用并查集暴力枚举连通块这个应该容易理 ...
- sap smartform 打印乱码问题
在smartforms打印的时候会遇到中英文结合的form 有时候系统会处理时出现乱码 有时不会 不知道是系统的事情还是配置的事情 现在是我的解决办法 因为是中英文结合 在中文环境建立form ...