知行编程网知行编程网  2023-01-12 20:00 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于type()函数如何创建python3中的类?的相关知识,包括python lambda函数,以及range函数python这些编程知识,希望对大家有参考作用。

相信结合前面函数的学习,小伙伴们可以轻松应用函数了。所以,结合我们最近写的类,想看看有没有人知道type()函数是怎么创建类的?当然,我们之前讲过的功能种类很多,大家可能对这个功能没有印象,不用太过担心。接下来小编就来给大家讲解一下。

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

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()


功能一点都不优雅,似乎缺乏完整性,代码不好读,写起来也很繁琐。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享