python元类学习笔记

一 对于python类带括号和不带括号的区别:

class User(object):
    def __init__(self, name):
        self.name = name


a = User   # a和User等价
print(a)
print(a == User)
a.name = 'aaa'
print(User.name)

print('-'*10)

b = User('bbb')   # b是User的一个实例对象
print(b)
print(User.name)

输出结果:
<class '__main__.User'>
True
aaa
----------
<__main__.User object at 0x104e206a0>
aaa

  

二 python中的类同样也是对象

三 使用type创建类

type(类名, 父类的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))
class User(object):
  name = "aaa"
User = type('User', (), {"name": "aaa"})

  

Python中的类也是对象,元类就是用来创建这些类的,元类就是类的类

函数type实际上是一个元类。type就是Python在背后用来创建所有类的元类

str是用来创建字符串对象的类,而int是用来创建整数对象的类。type就是创建类对象的类

猜你喜欢

转载自www.cnblogs.com/django-start/p/10162325.html
今日推荐