[b0016] python 归纳 (二)_静态方法和类方法
# -*- coding: UTF-8 -*-
"""
测试 类的静态方法,类方法
@staticmethod
@classmethod 总结:
1. self 指向类对象, cls 指向类,两个名字都可以随意取,一般取大家公认的这个两个
2. staticmethod 方法体可以调用 同类的 类.类属性、 类.静态方法、类.类方法
类外可以调用 类.静态方法
3. classmethod 方法体可以条用 同类的 cls.类属性、cls.静态方法、cls.类方法
当然也可以通过 类.类属性、 类.静态方法、类.类方法
类外可以调用 类.类方法
4. 类属性(company)调用范围为全部
类外 类.类属性
实例方法 self.类属性
静态方法 类.类属性
类方法 cls.类属性|类.类属性 """
class Washer:
company = "lilei"
def __init__(self,water=10,scour=2):
self._water = water
self.scour = scour
self.year = 2010 @staticmethod
def spins_ml2(spins):
print "ml2" @staticmethod
def spins_ml(spins):
print(Washer.company)
Washer.get_washer2(2)
Washer.spins_ml2(5) @classmethod
def get_washer2(cls,params):
# print "washter2"
pass @classmethod
def get_washer(cls,water,scour):
# print Washer.company
# print cls.company
# print cls.get_washer2(2)
pass print cls.company
cls().start_wash() #通过cls获得实例对象 调用实例方法 # print("comany:",Washer.company)
# print('year:',self.year)
# return cls(water,cls.spins_ml(scour)) def start_wash(self):
print "hello" def start_wash2(self):
"""实例方法中,调用类的静态、类方法"""
Washer.get_washer2(2)
self.get_washer2(2)
Washer.spins_ml2(5)
self.spins_ml2(5)
print self.company
print Washer.company if __name__ == '__main__':
# print(Washer.spins_ml(8))
#
# print(w.spins_ml(8))
# w = Washer(200,Washer.spins_ml(9))
# w.start_wash() # case 1 静态方法
print "-----1"
Washer.spins_ml(5) # case 2 类方法
print "-----2"
Washer.get_washer(100,9)
print Washer.company # case 3 实例方法
print "-----3"
w = Washer()
w.start_wash2() """
Out:
-----1
lilei
ml2
-----2
lilei
hello
lilei
-----3
ml2
ml2
lilei
lilei
"""
[b0016] python 归纳 (二)_静态方法和类方法的更多相关文章
- Python 进阶_OOP 面向对象编程_静态方法和类方法
目录 目录 静态方法 类方法 使用函数修饰符来声明静态方法和类方法 静态方法 静态方法仅是类中的函数, 不需要绑定实例, 也就是说静态方法的定义不需要传入 self 参数. 静态方法不属于类的某一个实 ...
- python基础之类的静态方法和类方法
一 静态方法 通常情况下,在类中定义的所有函数都是对象的绑定方法,对象再调用绑定方法时会自动将自己作为参数传递给方法的第一个参数.除此之外还有两种常见的方法:静态方法和类方法,二者是为类量身定制的,但 ...
- Python普通方法、静态方法、类方法
开始 # -*-coding:utf-8-*- # 普通方法,类方法,静态方法的区别 __metaclass__ = type class Tst: name = 'tst' data = 'this ...
- [b0041] python 归纳 (二六)_多进程数据共享和同步_事件Event
# -*- coding: utf-8 -*- """ 多进程 同步 事件multiprocessing.Event 逻辑: 子线程负责打印,会阻塞, 等待主进程发出控制 ...
- [b0040] python 归纳 (二五)_多进程数据共享和同步_信号量Semaphore
# -*- coding: utf-8 -*- """ 多进程同步 使用信号量 multiprocessing.Semaphore 逻辑: 启动5个进程,打印,每个各自睡 ...
- [b0039] python 归纳 (二四)_多进程数据共享和同步_锁Lock&RLock
# -*- coding: utf-8 -*- """ 多进程 锁使用 逻辑: 10个进程各种睡眠2秒,然后打印. 不加锁同时打印出来,总共2秒,加锁一个接一个打印,总共 ...
- [b0037] python 归纳 (二二)_多进程数据共享和同步_管道Pipe
# -*- coding: utf-8 -*- """ 多进程数据共享 管道Pipe 逻辑: 2个进程,各自发送数据到管道,对方从管道中取到数据 总结: 1.只适合两个进 ...
- [b0036] python 归纳 (二一)_多进程数据共享和同步_服务进程Manager
# -*- coding: utf-8 -*- """ 多进程数据共享 服务器进程 multiprocessing.Manager 入门使用 逻辑: 20个子线程修改共享 ...
- [b0035] python 归纳 (二十)_多进程数据共享和同步_共享内存Value & Array
1. Code # -*- coding: utf-8 -*- """ 多进程 数据共享 共享变量 Value,Array 逻辑: 2个进程,对同一份数据,一个做加法,一 ...
随机推荐
- MySQL 部署分布式架构 MyCAT (二)
安装 MyCAT 安装 java 环境(db1) yum install -y java 下载 Mycat-server-1.6.5-release-20180122220033-linux.tar. ...
- Linux 登录 MySQL 报错, 解决bash: mysql: command not found 的方法
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件. 首先得知道mysql ...
- arm-linux-gcc-5.4.0安装方法
首先需要下载arm-linux-gcc的安装包 这里提供一个5.4.0版本的安装包,如有需要自行下载. 下载链接:https://pan.baidu.com/s/1prpdmVNWBFzg79OXQs ...
- C学习笔记(6)--- 共用体,位域深入
1.共用体(Union): 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型.您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值.共用体提供了一种使用相同的内存位置 ...
- selenium的web自动化实战
selenium自动化原理: 1.通过各种语言(python,java,ruby等)调用接口库 2.通过浏览器驱动(web driver)来驱动浏览器 利用Python自动化的环境安装: 1.pyth ...
- itest(爱测试) 3.5.0 发布,开源BUG 跟踪管理& 敏捷测试管理软件
v3.5.0 下载地址 :itest下载 itest 简介:查看简介 V3.5.0 增加了 9个功能增强,和17个BUG修复 ,详情如下所述. 9个功能增强 : (1)增加xmind(思维导图) 转E ...
- JSON理解(一篇就够了)
可以看看视频讲解,视频几十分钟就结束了 JSON 1.什么是json 其实是一种数据格式的规范,与开发的语言无关,轻量级的数据格式 全称JavaScript Object Notation 2.优点: ...
- cannot resolve symbol 'XXX'
原因:出现这种情况的原因是在IDEA或者myeclipse编译器中没有导入相关的jar包(jar包相当于类的集合,可以使用其中的类): 针对IDEA出现cannot resolve symbol 'X ...
- SpringBoot定时器任务
Spring Boot使用@Scheduled定时器任务 摘要: Spring Boot之使用@Scheduled定时器任务 假设我们已经搭建好了一个基于Spring Boot项目,首先我们要在A ...
- LG4170/BZOJ1260 「CQOI2007」涂色 区间DP
区间DP 发现可以转化为区间包含转移. 考虑区间\([l,r]\),分为两种情况. \(col[l]=col[r]\) 此时相当于在涂\([l,r-1]\)或\([l+1,r]\)顺带着涂掉 \[f( ...