python 静态方法,类方法,类下面的函数区别
@clssmenthod(类方法) 与 @staticmethod(静态方法) 与类下面的函数的区别:
1.@classmethod修饰的方法def name(cls)需要通过cls参数传递当前类本身。
2.@staticmethod修饰的方法def name()不需要传递参数他和普通的函数是一样的。
3.类下面的函数def name(self)需要再方法里面加个self参数隐式的传递当前类对象的本身。
1、@clssmenthod 的使用
class class_name():
c=12 #这叫类属性
def __init__(self,a,b):
self.a=a #这叫对象属性
self.b=b
@clssmenthod
def name(cls):
cls().age() #调用类里面的方法
pass
def age(self):
pass
#调用时候不用实例化这个类,直接类名字.方法名()就行了,要实例化也可以。例如:class_name().name或class_name.name()
#可以调用其他方法的类属性值或者其他方法,例如:cls.age(),但是不能调用对象属性 。
#调用类里面的方法,例如:cls().age()
2、@staticmethod 的使用 (使用一般是,一个函数如果 和类没有关系,和对象也没有关系的时候,就可以使用静态方法)
class class_name():
c=12 #这叫类属性
def __init__(self,a,b):
self.a=a #这叫对象属性
self.b=b
@staticmethod
def name():
pass
#调用时候不用实例化这个类,直接类名字.方法名()就行了,要实例化也可以。例如:class_name().name或class_name.name()
#这种方法不可以调用其他方法的属性值与其他方法
class_name.name()
3、类下面的函数的使用
class class_name():
def __init__(self,a,b):
pass
def name(self):
pass
#调用时候需要实例化这个类,也需要传递参数,例如:class_name(a,b).name()
python 静态方法,类方法,类下面的函数区别的更多相关文章
- python静态方法类方法属性方法
Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的: 1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数: 2)从第1条,静态方法是无法访问 ...
- Python - 静态函数(staticmethod), 类函数(classmethod), 成员函数 区别(完全解析)
原文地址:http://blog.csdn.net/caroline_wendy/article/details/23383995 还有一篇:http://blog.csdn.net/carolzha ...
- Python静态方法 类方法
通常情况下,类中函数中定义的所有函数,,都是对象的绑定方法,除此之外,还有专门的静态方法和类方法,这两个是专门给类使用的,但是对象非要调用也是不会报错的. 对象在调用的时候会把自己传递给self,也就 ...
- python静态方法和类方法
静态方法和类方法在python2.2中被引用,经典类和新式类都可以使用.同时,一对内建函数:staticmethod和classmethod被引入,用来转化类中某一方法为这两种方法之一. 静态方法: ...
- python 面向对象 类方法,静态方法,property
property 内置装饰器函数 只在面向对象使用 把方法当初属性使用(方法不加参数) 例子: class Rectangle: def __init__(self,long,wide,color): ...
- python类的实例方法\静态方法\类方法区别解析(附代码)
前言 搞了好久python,一直搞得不太清楚这几种类的方法,今天花时间好好测试一下,算是弄懂点皮毛吧. 三种方法的不同 先剽窃个图看一下 可以看到,实例是三种方法都可以调用的,而类只可以调用两种.所以 ...
- python 类的魔法函数 内置函数 类方法 静态方法 抽象类
魔法函数 __init__函数 init函数会在实例化A这个类的时候被调用 class A(): def __init__(self): print('__init__函数') a = A() 显示结 ...
- 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别
[面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...
- python 静态方法,类方法 ,类的继承
转自: http://cowboy.1988.blog.163.com/blog/static/75105798201091141521583/ 1.关于定义类的一些奇特之处 今天在Python中 ...
随机推荐
- 用html导出的excel
html中的table给导出execl ,只有table 可以 其他不行 <!DOCTYPE html> <html lang="en"> <head ...
- c++中sort函数调用报错Expression : invalid operator <的内部原理
当我们调用sort函数进行排序时,中的比较函数如果写成如下 bool cmp(const int &a, const int &b) { if(a!=b) return a<b; ...
- 【 SSH 整合】Spring、Struts、Hibernate基本整合
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- 502,csssprite是什么,有什么优缺点
(百科:csssprite是一种网页图片应用处理方式,国内常叫css精灵.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢 ...
- 【Vue CLI】从安装到构建项目再到目录结构的说明
目录 1. 构建我们的项目 2. 目录结构说明 2.1 build目录 2.2 config目录 2.3 src目录 2.4 static目录 "Vue CLI是一个基于Vue.js进行快速 ...
- jinja 语法 - 整型转字符串
大多数 jinja 相关的问题,其实查文档就解决了,但后来遇到这个问题,使得我把 jinja 官方文档,api.样例等,认真读了个遍= =. 发现没有直接的办法可以将整型转为字符串,对于需要进行字符串 ...
- java.net.URISyntaxException: Illegal character in query at index 147
这是url出现了特殊字符,需要将特殊字符进行替换
- 安装docker并使用docker安装mysql
安装Docker 1. Docker 教程地址:https://www.runoob.com/docker/centos-docker.install.html 2.安装docker 命令:yum i ...
- CI 框架批量添加数据(如果数据库有就更新数据)
model: public function insert_select($values) { $sql = 'INSERT INTO ' . $this->_table_name . '(ar ...
- 新手第一次在GitHub上提交代码完整教程
提交步骤: 1.创建github repository(仓库) 2.安装git客户端 3.为Github账户设置SSH key 4.上传本地项目到github 一.创建github repositor ...