Python面向对象的一些知识


前言

利用Pytorch构建神经网络对我来说尚有难度,需学习面向对象的知识。我依据书籍《Python 3 面向对象编程(第2版)》,记录学习内容与个人问题。

学习内容提供给大家作为参考。


一、对象是什么?

对象是数据和相关行为的集合。

二、第一章笔记

1.对象与类的关系

代码如下:

class MyFirseClass:
	print("这是我的第一个类。")

aa = MyFirstClass
print('---')
bb = MyFirstClass
'''
输出:
这是我的第一个类。
---
这是我的第一个类。
'''

示例代码的重点有三个:

  • 使用class定义类,并且类具有行为,例如:输出语句。
  • 类和对象存在必然的先后顺序。特定的类编写完成后,即已确定了类的输入输出数据以及行为方法 ,才能够定义一个对象。
  • 根据一个类MyFirstClass,可以定义多个对象aabb。理解为,类是对象的模板。

2.封装与抽象

代码如下(示例):

class Person:
    def __init__(self,matter=None,move='False'):
    	self.matter = matter
    	self.move = move  
    	
    def DrinkWater(self):
        if self.matter == 'cup' and self.move == 'True':
            print("吨吨吨~")
        if self.matter != 'cup':
            print("缺少一个水杯。")
        if self.move != 'True':
            print("没有行动的欲望。")

    
kk_1 = Person()
kk_1.DrinkWater()
print('---')
kk_2 = Person('cup','True')
kk_2.DrinkWater()
'''
输出:
缺少一个水杯。
缺乏行动的欲望
---
吨吨吨~
'''

首先需要明确我的理解,封装抽象并不是aa=15这样的一行代码能够完成的操作,它们混合着python编程的概念,最终由多行代码实现。
示例代码的重点有三个:

  • 我封装了一个类Person以及一个方法DrinkWater。经过封装。他们分别有与外界的接口,即接受外界的信息;另外,他们有相对独立的内部实现,而内部实现对于外界是透明的,是外界没有必要关注的部分。
  • 我在设计方法DrinkWater时,抽象出该方法的两个特点,需要cup作为这种行为的承受者和True确定有没有行动的欲望。
  • 抽象和封装的关系,在我看来,完成时间没有先后,同时完成。而在封装开始前,可以写一些说明来检查设计的合理性。通过联系加强封装和抽象的技术。

以下是书中的摘抄

1.抽象是通过公共或者私有结构进行封装的过程,只处理与给定任务相关的最必要的一层细节。
2.尽可能不要让对象获取你的数据,除非你觉得这样做对你最有利。
3.不要给对象强制执行特定任务的接口。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了面向对象的概念和使用方法,面向对象的知识是我们快速便捷地使用pytorch的基础。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值