Python全栈之路----面向对象开发----元类介绍
Posted moxiaoyu666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python全栈之路----面向对象开发----元类介绍相关的知识,希望对你有一定的参考价值。
储备知识exec,可以被当作函数来看待。
参数1:字符串形式的命令
参数2:全局作用域(字典形式),如果不指定默认就使用globals()
参数3:局部作用域(字典形式),如果不指定默认就使用locals()
g = ‘x‘:1, ‘y‘:2 l = exec(‘‘‘ global x,m x = 10 m = 100 z = 3 ‘‘‘, g, l)
python中一切皆对象,对象可以怎么用?
1.都可以被引用,x = obj
2.都可以当作函数的参数传入
3.都可以当作函数的返回值
4.都可以当作容器类的元素,l = func, time, obj, 1
# 类也是对象 class Foo: pass obj = Foo()
产生类的类称之为元类,默认所有用class定义的类,他们的类是type
定义类的两种方式:
# 方法一:class class Chinese: # Chinese = type(...) country = ‘China‘ def __init__(self, name, age): self.name = name self.age = age def talk(self): print(‘%s is talking‘ % self.name) # 方法二:type
定义类的三要素:类名,类的基类们,类的名称空间
class_name = ‘Chinese‘ class_bases = (object,) class_body = ‘‘‘ class Chinese: # Chinese = type(...) country = ‘China‘ def __init__(self, name, age): self.name = name self.age = age def talk(self): print(‘%s is talking‘ % self.name) ‘‘‘ class_dic = exec(class_body, globals(), class_dic) print(class_dic) # ‘Chinese‘: <class ‘__main__.Chinese‘> Chinese = type(class_name, class_bases, class_dic) print(Chinese) # <class ‘__main__.Chinese‘>
以上是关于Python全栈之路----面向对象开发----元类介绍的主要内容,如果未能解决你的问题,请参考以下文章