1.面向对象补充知识metaclass 创建类就可以有两种方式: a.普通方式 1 class Foo(object): 2 3 def func(self): 4 print 'hello wupeiqi' b.特殊方式(type类的构造函数) 1 def func(self): 2 print ...
分类:
其他好文 时间:
2018-11-23 16:11:20
阅读次数:
266
1.python中一切皆是对象,类本身也是一个对象,当使用关键字class的时候,python解释器在加载class的时候会创建一个对象(这里的对象指的是类而非类的实例) 返回:<class '__main__.Foo'><class 'type'>2.什么是元类(1)元类是类的类,是类的模版(2) ...
分类:
编程语言 时间:
2018-11-02 11:13:23
阅读次数:
138
ObjectWrapper 该类的作用是对象的包装,对对象属性的操作,其行为有 BaseWrapper 具备了MetaObject,对象包装的公共父类,主要处理集合类型 BeanWrapper 具备了储存对象的Object和MetaClass MetaObject 获得初始对象的属性值通过Objec ...
分类:
移动开发 时间:
2018-10-22 12:58:14
阅读次数:
424
metaclass 除了使用type()动态创建类以外,要控制类的创建行为,还可以使用metaclass。 metaclass,直译为元类,简单的解释就是: 当我们定义了类以后,就可以根据这个类创建出实例,所以:先定义类,然后创建实例。 但是如果我们想创建出类呢?那就必须根据metaclass创建出 ...
分类:
编程语言 时间:
2018-10-14 23:35:13
阅读次数:
210
"""metaclass的作用是指定当前类由谁来创建"""# 第一种创建类的方式class Foo(object): name = "小强" # 类的静态字段 def func(self): return 666val = Foo()print(val.name)# 第二种创建类的方式Foo1 = ...
分类:
编程语言 时间:
2018-10-13 16:53:56
阅读次数:
148
#1.多态:同一种事物的多种形态
import abc
class Aninal(metaclass=abc.ABCMeta):
@abc.abstractmethod
def cry(self):
pass
class pig(Aninal):
def cry(self):
print(‘hengheng‘)
class dog(Aninal):
def cry(self):
print(‘wangwang‘)
pig1=pig()
dog1=dog()
#多态性:指的是在不考虑对象具体类型的情况下,直接使用对象。
def talk(obj):
obj.cry()
talk(dog1) #dog1.cry()
talk(pig1) #
分类:
其他好文 时间:
2018-10-08 23:14:41
阅读次数:
173
# 动物园 # 老虎 tiger 走路 游泳 # 天鹅 swan 走路 游泳 飞 # 老鹰 oldying 飞 走路 from abc import abstractmethod, ABCMeta # 接口的多继承 # 接口类 class Swim_Animal(metaclass=ABCMeta)... ...
分类:
其他好文 时间:
2018-10-02 20:44:15
阅读次数:
186
# 类组合将几个不相关的类组合在一起#什么时候用:当类之间有显著的不同,并且较小的类是较大的类所需组件时,用组合 class School: def __init__(self,name,addr): self.name=name self.addr=addr def zhao_sheng(self... ...
分类:
编程语言 时间:
2018-10-01 10:39:36
阅读次数:
156
import abc
class Animal(metaclass=abc.ABCMeta):
@abc.abstractmethod #强制子类
def eat(self):
pass
@abc.abstractmethod
def run(self):
pass
class Peeple(Animal):
def eat(self):
print(‘peeple is eating‘)
def run(self):
print(‘peeple is runing‘)
class Dag(Animal):
def eat(self):
print(‘dag is eating‘)
def run(self):
print(‘dag is runing‘)
peo1=Peeple()
dag1=Dag()
peo1.eat()
dag1.eat()
分类:
其他好文 时间:
2018-09-25 22:55:54
阅读次数:
182
关于元类的一些说明 1. 什么是元类? 在我们不自定义元类的前提下,元类指的就是 type,而type实际上就是一个类。 2. 元类的作用? 元类是用于创建某个类的类,即说明了我要创建的类是通过哪个类创建的。 3. 对创建类的重新认识 大多是情况下创建类的方式: 然而也可以这样创建 这两种创建类的效 ...
分类:
编程语言 时间:
2018-09-25 01:14:46
阅读次数:
200