python - 类的方法
类的方法分为:普通方法、 静态方法和类方法
| 调用方式 | 特征 | |
|---|---|---|
| 普通方法 | 由对象去调用执行,属于类 | 至少一个self,对象调用 |
| 静态方法 | 属于类,但通过类来调用,不依赖于任何对象,方法内部不需要对象封装的值时,可使用静态方法 | 任意参数,没有self,上面添加@staticmethod,类似装饰器的东东 |
| 类方法 | 静态方法的一种特殊形式,由类调用 | 至少一个cls参数,上面添加classmethod |
一、普通方法:
由对象去调用执行(方法属于类)
1.创建方法
class Province:
country = "中国" def __init__(self,name):
self.name = name def show(self): #普通方法,由对象去调用执行(方法属于类)
print(self.name)
2.访问普通方法:
普通方法的访问需要使用对象 才能访问
obj = Province("河北")
obj.show()
Out:
河北
二、静态方法:
1.创建静态方法
添加@staticmethod 并且 def f1(): 括号里面没有self ,这样就创建了静态方法
class Province:
country = "中国" def __init__(self,name):
self.name = name @staticmethod
def f1(arg1,arg2):
#静态方法,由类调用执行
print(arg1,arg2)
2.访问静态方法:
静态方法的访问直接使用类就可以访问,不需要使用对象
#访问静态方法
Province.f1(11,22)
out:
11 22
三、类方法
类方法:
1.创建类方法:
添加@classmethod 后创建的就是类方法,cls 就是类的名称
class Province:
country = "中国" def __init__(self,name):
self.name = name @classmethod
def f2(cls): #cls 是类名
print(cls)
2.方法类方法:
直接使用类名和方法名称即可
Province.f2()
out:
<class '__main__.Province'>
python - 类的方法的更多相关文章
- python类及其方法
python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中 ...
- Python类,域,方法,对象,继承
类和对象: 是面向对象编程的两个主要方面,类创建一个新类型,而对象这个类的实例.. 域: 属于一个对象或类的变量被称为域.域有两种类型: 属于每个实例(类的对象)或属于类本身.它们分别被称为实例变量和 ...
- python中函数和方法区别,以及如何给python类动态绑定方法和属性(涉及types.MethodType()和__slots__)
网上有很多同义但不同方式的说法,下面的这个说法比较让你容易理解和接受 与类和实例无绑定关系的function都属于函数(function): 与类和实例有绑定关系的function都属于方法(meth ...
- Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别
先看两个类的方法: >>> class nc(): def __init__(self): self.name ='tester' #name变量加self >>> ...
- 第8.7节 Python类__new__方法和构造方法关系深入剖析:__new__方法执行结果对__init__的影响案例详解
一. 引言 前面章节介绍了类中的构造方法和__new__方法,并分析了二者执行的先后顺序关系.__new__方法在__init__方法前执行,__new__方法执行后才返回实例对象,也就是说__new ...
- python 类和方法(面向对象)
类和方法 name = "Jack" city = "bejing" print("my name is %S and come from %s &q ...
- Method Resolution Order – Python类的方法解析顺序
在支持多重继承的编程语言中,查找方法具体来自那个类时的基类搜索顺序通常被称为方法解析顺序(Method Resolution Order),简称MRO.(Python中查找其它属性也遵循同一规则.)对 ...
- python类中方法加单下划线、双下划线、前后双下滑线的区别
首先看一段代码: class Foo(): def __init__(self): print "__init__ method" def public_method(self): ...
- Python类私有方法的陷阱
引言 Python不像C++.Java.C#等有明白的公共.私有或受保护的keyword来定义成员函数或属性,它使用约定的单下划线"_"和"__"双下划线作为函 ...
随机推荐
- Xcode简易基础篇,以新手角度去操作
声明:此Newlife XCode非Mac的XCode,避免误会. 日常用的Newlife X组件的相关资源,不限于XCode,只是以XCode组件为主: 1.QQ群:1600800 2.博客 : h ...
- java事件演示
package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...
- for 迭代器遍历list map
1.map与list区别 list是对象集合,允许对象重复. map是键值对的集合,不允许key重复 2.list 与 list<类型> list不限制类型,也就是object类型 ...
- linux 线程备忘
三种线程同步机制 •互斥锁 •信号量 •条件变量 pthread_t thread_id; 主要函数 pthread_create(),pthread_exit(),pthread_join(), ...
- 贪心 CF 332 C 好题 赞
题目链接: http://codeforces.com/problemset/problem/332/C 题目意思: 有n个命令,要通过p个,某主席要在通过的p个中选择k个接受. 每个任务有两个值ai ...
- javascript:Array.slice.call 到Array.prototype.slice.call
举个从对象到数组的例子: var obj={}; obj[1]=1; obj[2]=2; obj.length=2; var arr =Array.prototype.slice.call(obj); ...
- ajax初学
//参数说明url:请求文件地址//fnSucc:请求成功执行的函数,请求成功的条件为readyState状态码为4:且status状态码为200,status状态为浏览器请求返回的状态码//在fnS ...
- CentOS 5上Apache配置虚拟主机范例
昨天实践了下在CentOS 5上通过Apache直接配置虚拟主机,服务器没有安装面板软件,所以只能通过SSH远程连接操作了.Apache安装在/etc/httpd目录下,这个即是Apache的根目录, ...
- quartz spring 时间配置
关于时间配置, 1前面带0和不带0的区别是??? (开始时间,带0以整点整分整秒开始,不带的以启动时间定时循环??) 比如 0 7/37 * * * ? 表示每个小时的第7分钟开始执行,然后隔三 ...
- Spark link集合
Part1. 各种参数的意义及如何配置 Spark官方文档——Spark Configuration(Spark配置) http://www.cnblogs.com/vincent-hv/p/3316 ...