python-动态创建类
方式一
# 类也是对象 type是创建类的类
def create_class(name):
if name == 'user':
class User(object):
def __str__(self):
return 'User'
return User
else:
class Company(object):
def __str__(self):
return 'Company'
return Company
if __name__ == '__main__':
my_class = create_class('user')
my_obj = my_class()
print(my_obj)
方式二:
# type动态创建类
# 元类就是创建类的类 type -> class(对象) -> 对象
class BaseClass(object):
def answer(self):
return 'i am baseclass'
def create_class(name):
if name == 'user':
return type('User',(BaseClass,),{'name':'User','say':say})
else:
return type('Company',(BaseClass,),{'name':'Company','say':say})
def say(self):
return f'i am {self.name}'
if __name__ == '__main__':
my_class = create_class('user')
my_obj = my_class()
print(my_obj.name)
print(my_obj.say())
print(my_obj.answer())
共有 0 条评论