# -*- 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 归纳 (二)_静态方法和类方法的更多相关文章

  1. Python 进阶_OOP 面向对象编程_静态方法和类方法

    目录 目录 静态方法 类方法 使用函数修饰符来声明静态方法和类方法 静态方法 静态方法仅是类中的函数, 不需要绑定实例, 也就是说静态方法的定义不需要传入 self 参数. 静态方法不属于类的某一个实 ...

  2. python基础之类的静态方法和类方法

    一 静态方法 通常情况下,在类中定义的所有函数都是对象的绑定方法,对象再调用绑定方法时会自动将自己作为参数传递给方法的第一个参数.除此之外还有两种常见的方法:静态方法和类方法,二者是为类量身定制的,但 ...

  3. Python普通方法、静态方法、类方法

    开始 # -*-coding:utf-8-*- # 普通方法,类方法,静态方法的区别 __metaclass__ = type class Tst: name = 'tst' data = 'this ...

  4. [b0041] python 归纳 (二六)_多进程数据共享和同步_事件Event

    # -*- coding: utf-8 -*- """ 多进程 同步 事件multiprocessing.Event 逻辑: 子线程负责打印,会阻塞, 等待主进程发出控制 ...

  5. [b0040] python 归纳 (二五)_多进程数据共享和同步_信号量Semaphore

    # -*- coding: utf-8 -*- """ 多进程同步 使用信号量 multiprocessing.Semaphore 逻辑: 启动5个进程,打印,每个各自睡 ...

  6. [b0039] python 归纳 (二四)_多进程数据共享和同步_锁Lock&RLock

    # -*- coding: utf-8 -*- """ 多进程 锁使用 逻辑: 10个进程各种睡眠2秒,然后打印. 不加锁同时打印出来,总共2秒,加锁一个接一个打印,总共 ...

  7. [b0037] python 归纳 (二二)_多进程数据共享和同步_管道Pipe

    # -*- coding: utf-8 -*- """ 多进程数据共享 管道Pipe 逻辑: 2个进程,各自发送数据到管道,对方从管道中取到数据 总结: 1.只适合两个进 ...

  8. [b0036] python 归纳 (二一)_多进程数据共享和同步_服务进程Manager

    # -*- coding: utf-8 -*- """ 多进程数据共享 服务器进程 multiprocessing.Manager 入门使用 逻辑: 20个子线程修改共享 ...

  9. [b0035] python 归纳 (二十)_多进程数据共享和同步_共享内存Value & Array

    1. Code # -*- coding: utf-8 -*- """ 多进程 数据共享 共享变量 Value,Array 逻辑: 2个进程,对同一份数据,一个做加法,一 ...

随机推荐

  1. [20190910]索引分支块中TERM使用什么字符表示.txt

    [20190910]索引分支块中TERM使用什么字符表示.txt --//做索引块转储,一些root,分支节点出现TERM,从来没有关注使用字符表示,简单探究看看. 1.环境:SCOTT@test01 ...

  2. js 常用工具方法

    1.格式化字符串 String.prototype.format = function () { let args = arguments; return this.replace(/\{(\d+)\ ...

  3. CodeForces - 1228C(质因数分解+贡献法)

    题意 https://vjudge.net/problem/CodeForces-1228C 首先先介绍一些涉及到的定义: 定义prime(x)表示x的质因子集合.举例来说,prime(140)={2 ...

  4. 【bzoj4006】[JLOI2015]管道连接(斯坦纳树+dp)

    题目链接 题意: 给出\(n\)个点,\(m\)条边,同时给出\(p\)个重要的点以及对应特征. 现在要选出一些边,问使得这\(p\)个所有特征相同的点相连,问最小代价. 思路: 斯坦纳树的应用场景一 ...

  5. node exporter

    在prometheus中负责数据汇报的程序统一叫做exporter; 负责主机信息收集的node_exporter 可以利用prometheus的static_configs来拉取node_expor ...

  6. oracle 周岁年龄计算

    以下三种方法均可实现周岁年龄的计算: --算法一: SELECT TRUNC(months_between(sysdate, csrq)/12) AS "Age" FROM wrx ...

  7. 关于appium的简单理解

    搭建好appium环境后,要学会定位app页面上的元素.下面是2款元素定位工具 uiautomatorviewer   -- Android SDK自带的元素定位工具,由Google开发的 Inspe ...

  8. Jmeter怎么搭建环境

    1.JDK检查与安装 cmd输入命令:java -version   -- 检查主机是否安装了JDK JDK下载官网:https://www.oracle.com/technetwork/java/j ...

  9. 20191028 牛客网CSP-S Round2019-1

    花了 \(30min\) 打了 \(180\) 分的暴力... 仓鼠的石子游戏 问题描述 链接:https://ac.nowcoder.com/acm/contest/1100/A 仓鼠和兔子被禁止玩 ...

  10. svn merge操作

    使用SVN做Merge操作时,会包含6个选项,下面就这6个选项给出详细的说明: 1.Merge a range of revisions 此类型应用最为广泛,主要是把源分支中的修改合并到目标分支上来. ...