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全栈之路----面向对象开发----元类介绍的主要内容,如果未能解决你的问题,请参考以下文章

Python全栈之路----面向对象开发----元类介绍

Python全栈之路----面向对象开发----封装

Python全栈开发之9面向对象元类以及单例

8python全栈之路-初识面向对象

Python全栈之路系列----之-----面向对象

10python全栈之路-面向对象进阶