# -*- 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. Django 的ORM 表间操作

    Django之ORM表间操作   之前完成了简单的数据库数据增加操作.这次学习更多的表间操作. 单表操作 增加 方式一 b = Book(title="Python基础", pub ...

  2. [Linux] 解决nginx: [emerg] directive "rewrite" is not terminated by ";"

    解决nginx: [emerg] directive "rewrite" is not terminated by ";"nginx的rewite规则有时候没注 ...

  3. 渗透测试学习 十五、 文件上传&&解析漏洞

    大纲:文件解析漏洞 上传本地验证绕过 上传服务器验证绕过 文件解析漏洞 解析漏洞主要说的是一些特殊文件被IIS.Apache.Nginx在某些情况下解释成脚本文件格式的漏洞. IIS 5.x/6.0解 ...

  4. Linux:别名的设置

    作用 别名的作用是将较长的命令做简化 定义别名 alias [别名[=原命令]] 删除别名 unalias 查看系统可用别名 alias

  5. Android刷机

    1.安装第三方recovery 下载自己手机适配的recovery包 https://twrp.me/lg/lgnexus5.html fastboot 卡在 waiting for device $ ...

  6. vue-router 之 keep-alive路由缓存处理include+exclude

    keep-alive 简介 keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染. 用法也很简单: <keep-alive> <compone ...

  7. Pwn-level1

    题目地址 https://dn.jarvisoj.com/challengefiles/level1.80eacdcd51aca92af7749d96efad7fb5 先看一下文件的类型和保护机制   ...

  8. keras 学习笔记(一) ——— model.fit & model.fit_generator

    from keras.preprocessing.image import load_img, img_to_array a = load_img('1.jpg') b = img_to_array( ...

  9. 剑指Offer-19.顺时针打印矩阵(C++/Java)

    题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 ...

  10. 【PL/SQL】设置F8自动运行