面向对象编程之动态创建一个类

面向对象编程之动态创建一个类

八股文如下:

描述

type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

语法

以下是 type() 方法的语法:

type(object)
type(name, bases, dict)

参数

  • name -- 类的名称。
  • bases -- 基类的元组。
  • dict -- 字典,类内定义的命名空间变量。

返回值

一个参数返回对象类型, 三个参数,返回新的类型对象。

直接上代码吧!!

首先简单的进行以下总结!!

①类是由type产生的,type是所有类的祖师爷!!
②type方法可以动态的创建一个类
③type=('类名',(继承什么类,继承类2,....),{属性:类变量--key : value})

 

'''
类是由type产生的,type是所有类的祖师爷!!
type方法可以动态的创建一个类
type=('类名',(继承什么类,继承类2,....),{属性:类变量--key : value})
问题1:如何在type方法中创建一个复杂的变量?
答:可以通过自定义函数,在放入type方法中,即可完成实例属性的创建
'''
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

p1=Person('小李',12)
print(type(p1))
#对于Person 来说 类的属性都是type,故我们可以使用type去动态的创建一个类
print(type(Person))



Student=type('Student',(Person,),{'role':'student','classs':'english'})
print(Student)
s1=Student('man','小李',11)
print(s1.sex,s1.name,s1.age,s1.role,s1.classs)
print(type(s1))
print(type(Student))

问题1:如何在type方法中创建一个复杂的变量?
答:可以通过自定义函数,在放入type方法中,即可完成实例属性的创建

'''
类是由type产生的,type是所有类的祖师爷!!
type方法可以动态的创建一个类
type=('类名',(继承什么类,继承类2,....),{属性:类变量--key : value})
问题1:如何在type方法中创建一个复杂的变量?
答:可以通过自定义函数,在放入type方法中,即可完成实例属性的创建
'''
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

p1=Person('小李',12)
print(type(p1))
#对于Person 来说 类的属性都是type,故我们可以使用type去动态的创建一个类
print(type(Person))

def __init__(self,sex,name,age):
    super(Student,self).__init__(name,age)
    #super().__init__(name,age)
    self.sex=sex

Student=type('Student',(Person,),{'role':'student','classs':'english','__init__':__init__})
print(Student)
s1=Student('man','小李',11)
print(s1.sex,s1.name,s1.age,s1.role,s1.classs)
print(type(s1))
print(type(Student))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天的学习日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值