最新公告
  • 欢迎您光临知事网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • type()函数如何创建python3中的类?

    相信结合之前函数的学习,小伙伴们对于函数的应用可以得心应手了。那么,结合我们最近所写的类,小编想看看有没有小伙伴知道type()函数是如何创建类的?当然了,我们之前讲的函数种类繁多,大家不一定对这个函数有印象,这点大家也不用太着急。小编接下来为大家进行讲解。

    当我们使用class定义类的时候,Python解释器仅仅是扫描一下定义的语法,然后调用type()函数创建class类。那为什么采取这种方式呢?先看一个例子:

    class A(object):
        # 类属性
        role = 'student'
     
        # 实例方法
        def __init__(self, name):
            # 实例属性
            self.name = name
     
        # 类方法
        @classmethod
        def study(cls):
            pass
     
        # 静态方法
        @staticmethod
        def cal_student_num():
            Pass

    上面我们使用class定义了A类对象,其中包含了类属性、类方法、实例属性、实例方法、静态方法。如果我们使用type()函数,如何创建呢?

    # 使用type()函数定义类
    # 实例方法
    def __init__(self, name):
        # 实例属性
        self.name = name
     
     
    # 类方法
    @classmethod
    def study(cls):
        pass
     
     
    # 静态方法
    @staticmethod
    def cal_student_num():
        pass
     
     
    # 元类最大的作用不在于创建一个新的类
    A = type(
        'A',
        (object,),
        {
            'role': 'student',
            '__init__': __init__,
            'study': study,
            'cal_student_num': cal_student_num
    })

    仔细观察,使用type()函数创建class类的时候,只是将定义在class类内部的代码拿出来,放在外面,然后向type()函数传入三个参数name,bases,dict。name字符串类型,代表类名,比如例子中的”A”;bases元组类型,代表基类(或父类),即需要继承的类对象;dict字典类型,将定义的类属性、类方法、实例方法等,以键值对的形式建立映射关系。

    当我们使用class定义对象的时候,解释器内部会帮我们调用type()函数,完成创建对象工作。为什么平时我们定义对象大多是采用class,而不采用type()函数呢?因为type()函数一点都不优美,看上去缺少整体性,代码不易读,写起来也很麻烦。

    猜你在找

    找互联网优质资源,上知事网!
    知事网 » type()函数如何创建python3中的类?

    常见问题FAQ

    网盘提取密码在哪里?
    在网站右侧有个“文件密码”,点击复制即可!
    网站的积分如何获得?
    注册登录后,每天签到可获得2个积分,每天可签到一次!

    发表评论

    • 1245会员总数(位)
    • 665资源总数(个)
    • 3本周发布(个)
    • 1 今日发布(个)
    • 3458稳定运行(天)

    提供最优质的资源集合

    Mac软件 Dedecms源码
    升级SVIP尊享更多特权立即升级