[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个进程,对同一份数据,一个做加法,一 ...
随机推荐
- linux权限管理-基本权限
目录 linux权限管理-基本权限 权限修改命令chmod linux权限管理-基本权限 权限 针对某些文件和进程,对用户进行限制 权限与用户的关系 rwx rwx r-x User Group Ot ...
- SRDC - ORA-1562: Checklist of Evidence to Supply (Doc ID 1682728.1)
SRDC - ORA-1562: Checklist of Evidence to Supply (Doc ID 1682728.1) Action Plan 1. Execute srdc_db_ ...
- emacs 矩形操作
emacs 矩形操作 如果使用图形化(GUI)的eamcs,使用M-x cua-mode,很好用,但是如果不是图形化的emacs(emacs -nw)的话,矩形操作就不能使用cua-mode. 非图形 ...
- centos下载安装libgcc 和 libtiff
1. 查看libtiff 可安装列表: [root@e952aff59318 lib]# yum list | grep "libtiff" libtiff.i686 4.0.9- ...
- Jmeter设置默认中文启动
安装好jmeter,启动的页面是全英文,对于不熟悉jmeter的人来说,理解起来还是很困难的.如何设置成中文页面呢? 方法一:打开jmeter后,设置Options—choose language—C ...
- mysql里字符集的配置
[client]default-character-set=utf8[mysqld]character-set-server = utf8[mysql]default-character-set=ut ...
- c/c++ 混合编程.so
CC = gccC++ = g++LINK = g++ LIBS = -lz -lm -lpcre#must add -fPIC optionCCFLAGS = $(COMPILER_FLAGS) - ...
- Java代码精进
一.代码命名规范 驼峰命名法(CamelCase) Google 定义了以下的转换规则: 从正常的表达形式开始,把短语转换成 ASCII 码,并且移除单引号. 例如,“Müller’s algorit ...
- SpringMVC常用注解(三)
一.@Controller .@RestController 和 @ControllerAdvice 1. @Controller @Controller 用于标记在一个类上,使用它标记的类就是一个S ...
- ionic4 ion-picker用法
ion-picker实际开发中肯定多处使用,所以封装成服务的形式调用 新建picker.service服务模块 ionic g service picker import { Injectable ...