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)
Python构造函数 类是对象的模板,是抽象的 。
构造函数 init 是Python魔术方法之一,如图魔术方法
我们通过类模版去创建类的实例对象,然后再调用类定义的功能 。
那实例对象的属性是通过什么来初始化的?
这时候Python引入来构造函数 init
构造函数 , 会在创建实例对象之后Python会自动执行此方法 , 把初始化的属性特点放到实例对象里 。
通过前面的学习,我们知道一个python对象包含三个部分:id(识别码),type(对象类型) , value(对象的值)
那么我们进一步深入对象包含的三部分:
我们通过类创建实例对象后,需要定义构造函数 init ()方法 。
构造方法用于执行实例对象的初始化工作,即对象创建之后,初始化当前对象的相关的属性,无返回值
构造函数重点 :
我们通过栗子来学习构造函数的过程
构造函数初始化实例对象过程如下:
1.Animal类会通过默认的 new ()方法为实例对象在堆内存中为开辟一个空间
敲黑板,重点来啦~
拓展:
我们今天学习了构造函数 init (),其在创建对象之后被Python自动调用初始化实例对象属性数据值,无返回值,并且构造函数不能被显示调用 。
创建对象时,如果需要,构造函数可以接受参数 。当创建没有构造函数的类时,Python会自动创建一个不执行任何操作的默认构造函数 。
每个类必须有一个构造函数 , 即使它只依赖于默认构造函数
好啦 , 以上是本期内容,欢迎大佬评论区指正~
Python-类的创建和使用创建一个宠物 Pet 类,根据该类创建的每个实例都将存储名字和物种,赋予每个宠物吃饭(eat())和睡觉(sleep())的能力:
根据类创建实例
调用方法
给上面的例子进行补充,设置一个宠物到家的初始时间默认值为 0,对某个属性设定默认值可以不提供形参 。
调用一下read_time()
增加一个 update_time() 的方法,指定初始时间
调用
新增一个 increment_time() 方法,表示较初始值而言增加的时间
调用
一个类继承另一个类时 , 它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类 。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法 。
创建一个 Cat 类,继承 Pet 的属性,同时可以定义 Cat 特有的属性 。
推荐阅读
- 钉钉手机直播怎么不能全屏,钉钉直播不能横屏怎么办
- pg库单表极限数据量,pg数据库表空间大小
- sqlserver怎样查看备份设备,sql server打开备份文件
- 新媒体如何进行宣传,新媒体如何进行宣传
- php数据库不为空的 php显示数据库表中内容
- linux命令mem,Linux命令menu
- linux开机添加命令,linux命令行添加用户
- sap职位是什么意思呀,sap jobs
- mySQL组件怎么安装 mysql安装详细教程