# # 利用描述符原理定义一个@classmethod
# class ClassMethod:
# def __init__(self,func):
# self.func = func
# def __get__(self,instance, owner):
# # 类来调用,instance为None,owner为类本身,
# # 实例来调用,instance为实例,owner为类本身,
# def feenback():
# print(instance,owner)
# print('在这里可以加功能')
# return self.func(owner)
# return feenback
# class People:
# name = 'wangcong'
# @ClassMethod
# def say_hi(cls):
# print(cls)
# print("你好啊, %s" %cls.name)
#
# # say_hi = ClassMethod(say_hi)
# People.say_hi()
#
# p1 = People()
# print(p1.name)
# p1.say_hi() # 类方法有参数
class ClassMethod:
def __init__(self,func):
self.func = func
def __get__(self,instance,owner):
def feedback(*args,**kwargs):
print("在这里可以加工能")
return self.func(owner,*args,**kwargs)
return feedback
class People:
name='linhaifeng'
@ClassMethod # say_hi=ClassMethod(say_hi)
def say_hi(cls,msg):
print('你好啊,帅哥 %s %s' %(cls.name,msg))
People.say_hi('你是那偷心的贼') p1=People()
p1.say_hi('你是那偷心的贼')

classmethod自己定制的更多相关文章

  1. Python学习_12_方法和类定制

    方法 在上一篇随笔中,简单提到了类的某些方法:__init__()等的调用,并简要说明方法和函数的区别. 方法是在类内部定义的函数,方法也是对象,所以方法是类的属性,这就是为什么说实例的方法存在于类定 ...

  2. Scrapy 框架 中间件,信号,定制命令

    中间件 下载器中间件 写中间件 from scrapy.http import HtmlResponse from scrapy.http import Request class Md1(objec ...

  3. 潭州课堂25班:Ph201805201 第十二课 new方法,定制属性访问,描述符与装饰器 (课堂笔记)

    1,new方法: 类每次实例化时都会创建一个新的对象, class Textcls: # cls 是指类本身, def __new__(cls, *args, **kwargs): # 在 __ini ...

  4. Python 日志模块的定制

    Python标准logging模块中主要分为四大块内容: Logger: 定义应用程序使用的接口 Handler: 将Loggers产生的日志输出到目的地 Filter: 对Loggers产生的日志进 ...

  5. 12 new方法和单例、定制访问函数、装饰器

    new方法和单例.定制访问函数.装饰器 上节课作业解答 # 通过多重继承方法,分别定义出动物,人类,和和荷兰人三种类 class Animal(object): def __init__(self, ...

  6. Python__new__方法、定制属性访问、描述符与装饰器

    __new__方法的运行顺序 装饰器的概念的用法 三个内置装饰器 类中属性的访问过程 __new__方法 创建实例的方法 __new__方法是在类创建实例的时候自动调用的 实例是通过类里面的__new ...

  7. python基础语法17 面向对象4 多态,抽象类,鸭子类型,绑定方法classmethod与staticmethod,isinstance与issubclass,反射

    多态 1.什么是多态? 多态指的是同一种类型的事物,不同的形态. 2.多态的目的: “多态” 也称之为 “多态性”,目的是为了 在不知道对象具体类型的情况下,统一对象调用方法的规范(比如:名字). 多 ...

  8. Python学习第二十课——自定property and classmethod

    自定制property class Lazyproperty: def __init__(self,func): # print('==========>',func) self.func=fu ...

  9. 4月16日 python学习总结 封装之property、多态 、classmethod和staticmethod

    一.封装之property @property把一个函数伪装成一个数据类型  @伪装成数据的函数名.setter   控制该数据的修改,修改该数据时触发 @伪装成数据的函数名.delect  控制该数 ...

随机推荐

  1. Babel 转译 class 过程窥探--------引用

    // Shape 类function Shape(id, x, y) {    this.id = id;    this.setLocation(x, y);}// 设置坐标的原型方法Shape.p ...

  2. oracle rowtype

    v_customer customerinfo%rowtype; select * into v_customer from customerinfo where guid = v_loan.cust ...

  3. sklearn PCA的使用

    import numpy as np from sklearn.decomposition import PCA # 训练数据 train_data = np.array([[1, 2, 3], [4 ...

  4. jsp+上传组件+文件夹+文件

    上次遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败. 一开始以为是session过期或者文件大小受系统限制,导致的错误.查看了系统的配置文件没有看到文件大小限制,web.xml中sees ...

  5. 2018第九届蓝桥杯C/C++ A组试题答案参考

    题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来.类似:3/2当然,这只是加了前2项 ...

  6. 回调函数(callback) python / c++ 演示

    什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是 ...

  7. Idea关于Lombok的一些问题( java: 找不到符号 符号)

    22:15 Lombok Requires Annotation Processing Annotation processing seems to be disabled for the proje ...

  8. Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/Cppcc] due to a StackOverflowError. Possible root causes include a too low setting for -Xs

    解决办法:(1)修改D:\Java\apache-tomcat-7.0.88\conf\catalina.properties (122line) (2)如org.apache.catalina.st ...

  9. 基于XML的AOP配置(2)-环绕通知

    配置方式: <aop:config> <aop:pointcut expression="execution(* com.itheima.service.impl.*.*( ...

  10. HLS协议解析

    1. 综述 HLS(HTTP Live Streaming) 把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些.HLS 协议由三部分组成:HTTP.M3U8.TS.这三部分中,HTT ...