文档章节

几个关于元类的小demo

chaleaoch
 chaleaoch
发布于 2017/08/28 16:36
字数 100
阅读 1
收藏 0
点赞 0
评论 0
class Type(type):
    def __init__(cls, *args, **kwargs):
        print cls, args, kwargs

    def __new__(meta, cls_str, cls, args_dict):
        print cls_str, cls, args_dict
        return super(Type, meta).__new__(meta, cls_str, cls, args_dict)

    def __call__(cls, *args, **kwargs):
        print 'new'
        self = cls.__new__(cls, *args, **kwargs)
        if isinstance(self, cls):
            print 'init'
            self.__init__(*args, **kwargs)
        print 'return'
        return self


class Object(object):
    __metaclass__ = Type

    def __new__(cls, *args, **kwargs):
        print "__new__", args, kwargs
        return object.__new__(cls, *args, **kwargs)

    def __init__(self, *a, **kw):
        print "__init__", a, kw

Object(1, 2, 3)

© 著作权归作者所有

共有 人打赏支持
chaleaoch
粉丝 0
博文 15
码字总数 3019
作品 0
大连
程序员
跟小静读CLR via C#(05)- 访问限定、数据成员

跟小静读CLR via C#(05)- 访问限定、数据成员 今天跟大家分享一下关于访问限定和数据成员的知识。主要包括以下两点: Abstract, sealed, virtual, new, override怎么用? Const 和 readon...

技术小胖子 ⋅ 2017/11/16 ⋅ 0

zhaoxk/react-respond

react-respond 这是啥? 这是一个基于reactjs的布局组件 为啥? 这类组件应该是比较多的,而且很多成熟框架都有此类功能,做这玩意儿不是浪费时间吗? 对,是在浪费时间,我再来个粗糙的轮子...

zhaoxk ⋅ 2016/10/17 ⋅ 0

Python元类的一些应用

最近刚接触python的元类,网络上有比较详细的介绍,这里是在看Django时候发现一点关于元类的应用,做个笔记。 from django.utils import six class A(type): def new(cls, name, parents, at...

sola酱 ⋅ 2015/09/08 ⋅ 0

Objective-C Runtime:深入理解 类与对象

在那樱花盛开的季节 概述 常说Objective-C是一门动态语言,那么问题来了,这个表现在那些方面呢? 其实最主要的表现就是Objective-C将很多静态语言在编译和链接时做的事情放到了运行时去做,...

Jack_lin ⋅ 03/22 ⋅ 0

PHP通过xmlrpc注册ejabberd用户

正在研发一款社交软件,架构im使用了ejabberd作为xmpp服务器,于是遇到了如何通过php注册xmpp用户的问题。 解决方法有几个: 1.用xmpphp框架发送含<body>元数据的消息到服务器要求处理,这个...

_EKC ⋅ 2014/12/29 ⋅ 0

Python高级编程技巧

本文展示一些高级的Python设计结构和它们的使用方法。在日常工作中,你可以根据需要选择合适的数据结构,例如对快速查找性的要求、对数据一致性的要求或是对索引的要求等,同时也可以将各种数...

铁扇公主1 ⋅ 2017/04/28 ⋅ 0

Java注解(Annotation)

本文讲述Java Annotation的原理,如何自定义Java注解以及通过反射解析注解。 一、注解 1.1 概述 注解(Annotation)在JDK1.5之后增加的一个新特性,注解的引入意义很大,有很多非常有名的框架,...

GarfieldEr007 ⋅ 01/07 ⋅ 0

关于 self 和static的区别

<?php 可你知道self和static的区别么? 其实区别很简单,只需要写几个demo就能懂: Demo for self: class Car { public static function model(){ self::getModel(); } protected static fu......

chenhongjiang ⋅ 2016/05/10 ⋅ 0

linux c/c++面试知识点整理(三)

21、类成员函数的重载、覆盖和隐藏的区别 重载即为函数重载,重载的特征: (1)相同的范围,也就是在同一个类中; (2)函数名字相同; (3)参数不同; (4)virtual关键字无影响; demo如下: 覆盖...

晟夏的叶 ⋅ 2017/04/24 ⋅ 0

移动开发:触摸事件

当用户手指放在屏幕上面时,在屏幕上滑动时或从屏幕上移开时会触发一些相关事件,这类事件称之为触摸事件,有以下几个: 上面这几个事件都会冒泡,也都可以取消,每个触摸事件的event对象都提...

cd_ing ⋅ 2014/02/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 32分钟前 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 39分钟前 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 46分钟前 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 56分钟前 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

容器之查看minikue的environment——minikube的环境信息

执行如下命令 mjduan@mjduandeMacBook-Pro:~/Docker % minikube docker-envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/U......

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

mysql远程连接不上

设置了root所有hosts远程登录,可是远程登录还是失败,原因可能如下: 登录本地数据库 mysql -uroot -p123456 查询用户表 mysql> select user,host,password from mysql.user; 删除密码为空的...

冰公子 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部