
正文
python函数创建类 python 创建类
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
python函数里定义的类
#Python 2.5
#这个可以用修饰器来完成
#但是一般不会限制参数类型
#给python函数创建类你个思路:
def argfilter(*types):
def deco(func): #这是修饰器
def newfunc(*args): #新python函数创建类的函数
if len(types)==len(args):
correct = True
for i in range(len(args)):
if not isinstance(args[i], types[i]): #判断类型
correct = False
if correct:
return func(*args) #返回原函数值
else:
raise TypeError
else:
raise TypeError
return newfunc #由修饰器返回新的函数
return deco #返回作为修饰器的函数
@argfilter(int, str) #指定参数类型
def func(i, s): #定义被修饰的函数
print i, s
#之后python函数创建类你想限制类型的话, 就这样:
#@argfilter(第一个参数的类名, 第二个参数的类名, ..., 第N个参数的类名)
#def yourfunc(第一个参数, 第一个参数, ..., 第N个参数):
# ...
#
#相当于:
#def yourfunc(第一个参数, 第一个参数, ..., 第N个参数):
# ...
#yourfunc = argfilter(第一个参数的类名, 第二个参数的类名, ..., 第N个参数的类名)(yourfunc)
相关问答
Q1: Python构造函数
类是对象的模板,是抽象的。
构造函数 init 是Python魔术方法之一,如图魔术方法
我们通过类模版去创建类的实例对象,然后再调用类定义的功能。
那实例对象的属性是通过什么来初始化的?
这时候Python引入来构造函数 init
构造函数,会在创建实例对象之后Python会自动执行此方法,把初始化的属性特点放到实例对象里。
通过前面的学习,我们知道一个python对象包含三个部分:id(识别码),type(对象类型),value(对象的值)
那么我们进一步深入对象包含的三部分:
我们通过类创建实例对象后,需要定义构造函数 init ()方法。
构造方法用于执行实例对象的初始化工作,即对象创建之后,初始化当前对象的相关的属性,无返回值
构造函数重点 :
我们通过栗子来学习构造函数的过程
构造函数初始化实例对象过程如下:
1.Animal类会通过默认的 new ()方法为实例对象在堆内存中为开辟一个空间
敲黑板,重点来啦~
拓展:
我们今天学习了构造函数 init (),其在创建对象之后被Python自动调用初始化实例对象属性数据值,无返回值,并且构造函数不能被显示调用。
创建对象时,如果需要,构造函数可以接受参数。当创建没有构造函数的类时,Python会自动创建一个不执行任何操作的默认构造函数。
每个类必须有一个构造函数,即使它只依赖于默认构造函数
好啦,以上是本期内容,欢迎大佬评论区指正~
Q2: Python-类的创建和使用
创建一个宠物 Pet 类,根据该类创建的每个实例都将存储名字和物种,赋予每个宠物吃饭(eat())和睡觉(sleep())的能力:
根据类创建实例
调用方法
给上面的例子进行补充,设置一个宠物到家的初始时间默认值为 0,对某个属性设定默认值可以不提供形参。
调用一下read_time()
增加一个 update_time() 的方法,指定初始时间
调用
新增一个 increment_time() 方法,表示较初始值而言增加的时间
调用
一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
创建一个 Cat 类,继承 Pet 的属性,同时可以定义 Cat 特有的属性。
调用
如果子类中的某些属性与父类不一样,可以在子类新建方法重新定义来改写父类。
类的导入和函数的导入相同。
python函数创建类的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python 创建类、python函数创建类的信息别忘了在本站进行查找喔。








