AI初学笔记4 类与面向对象的创建

AI初学笔记4 类与面向对象的创建


一、什么是类,什么是面向对象

在前几节建立的深度学习模型都是简单模型,定义的函数只有两三个,所以不需要定义大类,但当模型复杂以后,需要使用的函数极多,这就需要对所需函数进行分类。

一般的定义规则是大类中再包含该类的属性和动作。打个简单的比方,我们大致可以把动物分为人类,鸟类,鱼类等等大类(生物学上好像不是这么分的不过就当是这样吧),人类中的属性有:性别,年龄,名字等,人类中的动作有:吃,跑等。

在python中编程有两种思路,一种是面向过程,一种是面向对象,面向过程是针对任务,需要什么函数就自己定义什么函数,就像之前几节里的那样。而面向对象编程则是在之后要经常用到的,应对复杂模型必须掌握的编程思路,就是将函数提前定义进大类里,需要的时候将类名赋给对象名,直接从大类中调用所需函数。

再打个简单的比方,一个老板如果要出差,你当然可以自己定机票,定酒店,打出租去机场,再坐飞机,这就是面向过程的编程思路,其中订机票等等动作就是一个个函数。当然还有更简单的方式,因为你是老板,所以完全可以通知秘书,他会准备好一切安排,你需要做的就是:通知秘书,坐飞机。这就是面向对象的编程思路,过程中所需要的函数,都会在大类中定义好,直接取用就可以了。

代码实现

代码如下:

class Person:
    age = 18
    name = 'XiaoMing'
    def eat(slef):
        print("吃饭")
        pass
    def run(self):
        print("跑")

xiao = Person
print(xiao.age)
xiao.eat(xiao)
xiao.run(xiao)
print("姓名:{},年龄:{}".format(xiao.name, xiao.age))

输出结果为:
18
吃饭

姓名:XiaoMing,年龄:18

这里调用函数的时候 xiao.eat(xiao) 括号中要输入本身self,否则报错(视频课程中没有报错,不知为何,可能是python版本不同)。另外注意一下.format()的用法。

二、实例属性

通过使用__init__():函数可以实现实例属性定义,与类属性的区别在于,要想使用实例属性,那么必须先启动 init(): 函数,而不能直接取用,这里将原先的类属性name去掉,重新定义了实例属性的name,运行结果与上文相同。

代码实现

代码如下:

class Person(object):
    age = 18

    def eat(abc):
        print("吃饭")
        pass
    def run(self):
        print("跑")
    def __init__(self):
        self.</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值