Python的核心知识——面向对象

一、WHY 学习面向对象?

假设现在有一个场景是这样的,我们要编写一个游戏,里面有主角,NPC,怪物等等这些模型,那么如果我们不学面向对象的话,我们就需要一个一个的编写它们的属性及动作,一般情况下,一个大型的游戏比如LOL(这游戏是真的火,都好几年了还没被干掉)里面的英雄,小兵,大龙,有好上百个模型吧。我们不可能一个一个的写,那代码量就不是一两个g那么大了(其实这就是面向过程的思想,POP)!仔细观察会发现它们这些模型都有相同的属性和动作,比如:都有生命值,魔法值等属性,攻击等动作,所以编程语言开发者们就在想了,有没有一个东西把它们共同的属性、动作封装起来,这时候类概念应运而生了,就是我们这篇文章的主体对象,而这种思想就是面向对象(OOP)!

那什么是面向对象编程呢?

度娘一下:面向对象(Object Oriented)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

巴拉巴拉一堆,感觉懵懵懂懂,个人的理解就是,一种思想,相对于面向过程的一种思想。这是我个人对关于面向对象与面向过程的区别的理解:链接在此

二、类和对象

类和对象是面向对象编程里面的两个非常重要的概念。它们的关系嘛,嗯~,如果是说类是一张汽车的图纸,那么一辆根据这个图纸制造出来的汽车就是一个对象!

1.类

类啥是类?用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。就可以理解为之前我们学习的函数,是一种有自治系统的函数,有自己的属性方法等等。类也是虚的,和函数一样,只有当它被实例化时才是计算机要运行的代码块,一个稿纸。

2.对象

对象又是啥?女朋友?男朋友?nonono,编程中的对象可不男女朋友万能多了,它可以帮你制造一个男朋友或者女朋友,厉害吧!那啥是对象?对象就是类的实例化,上面说了类是虚的,纸上谈兵,而对象是实,招兵买马。和函数一样,函数是虚的,调用函数是实的。

三、定义类和创建对象

那问题来了,知道它们的重要性,就得学会用它们了吧!那怎么用?听我慢慢道来!

首先这里推荐一个适合工作用的Python编程工具(看个人吧!想用就用,毕竟好东西要一起分享嘛!):pycharm

注意:像这种官方工具,尽量使用专业版,首先同为在IT行业的我们应该尊重编写pycharm的团队成果,其次在使用社区版的软件是不全面,这时候我们就会想用盗版破解软件,如果使用盗版软件,在以后的工作中就会涉及到版权的法律问题,那就不是一两百可以解决的问题了。

1.类的定义

格式:

class 类的名字:
…类的属性 = 属性值
…类的方法(self, [参数]):
… …方法体

类的属性,在Python中类的属性的定义与变量定义一样,记得赋值
类的方法,在Python中类的方法的定义与普通的函数定义方法一样,记得加self变量
代码

class Str:
    #一般Python属性的定义是直接赋值的,不像C++等编程语言是不可以赋值的
    name = "cc"
    age = 18
    #类的方法定义在参数表里,必须加上一个变量,一般情况Python编程者普遍使用self为变量名
    #self就是相对于C++的this指针,由于类是模型,而对象是由类实例化产生的,所以为了区分不同的对象,我们通过引进self变量区别
    #self变量的意思是将实例化后的对象的名字传递给self,而这种传递是在类里面的,调用方法时不需要传递
    #说白了,self就是一种标记实例化对象的全局变量,而方法里面的变量是局部变量
    #__init__魔法方法就是对类的初始化,在定义时本身就有的,现在是把它进行覆盖(后面会写),是不需要在实例化时调用的
    #通常称__init__为构造方法
    #其实类里面还有很多类似的方法,自行探索
    #self.name是对类内部属性的访问或者复制
    def __init__(self, Name):
    	self.name = Name
    def S_print(self):
        print("Name is {}, Age is {}".format(self.name, self.age))

类定义是虚的,不会在程序中显示!

2.对象的创建

格式:

实例化对象名 = 类名([参数])
实例化对象名.类属性名
实例化对象名.类方法名

代码

class Str:
    name = "cc"
    age = 18
    def __init__(
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值