python3中定义类的方法_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()函数一点都不优美,看上去缺少整体性,代码不易读,写起来也很麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值