大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

  • A+
所属分类:ptython全栈开发

Python作为人工智能首选编程语言,也是最近大家知道比较火的编程语言,Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。下面有大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!供参考学习!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

面向对象三大特性:

多态: 可对不同类的对象使用同样的操作。

封装:对外部世界隐藏对象的工作细节。

继承:以普通的类为基础建立专门的类对象。

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

多态

面向对象程序设计最有趣的特性是多太,它是是让大多数人犯晕的特性。所以,先来介绍这个。

多态意思是“有多种形式”。多态意味着就算不知道变量所引用的对象类是什么,还是能对它进行操作,而它也会根据对象(或类)类型的不同而表现出不同的行为。

从最简单的开始

任何不知道对象到底是什么类型,但是又要对对象“做点什么”的时候,都会用到多态。这不仅限于方法----很多内建运算符和函数都有多态的性质,考虑下面这个例子:

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

封装

封装是对全局作用域中其它区域隐藏多余信息的原则。

封装听起来有些像多态,因为他们都是 抽象的原则---他们都会帮助处理程序组件而不用过多关心多余细节,就像函数做的一样。

但是封装并不等同于多态。多态的可以让用户对于不知道是什么类(或对象类型)的对象进行方法调用,而封装是可以不用关心对象是如何构建的而直接进行使用。

创建一个有对象(通过像调用函数一样调用类)后,将变量c绑定到该对象上。可以使用setName 和 getName 方法(假设已经有)

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

继承

我们不想把同一段代码写好几,之前使用的函数避免了这种情况。但现在又有个更微妙的问题。如果已经有了一个类,又想建立一个非常类似的类,只是添加几个方法。

比如有动物类,我们又想在动物类的基础上建立鸟类、鱼类,哺乳动物类。

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

类和对象是面向对象编程的两个主要方面。类创建一个新类型,而对象是这个类的实例。这类似于你有一个int类型的变量,这存储整数的变量是int类的实例(对象)。

类和对象变量

我们已经讨论了类与对象的功能部分,现在我们来看一下它的数据部分。事实上,它们只是与类和对象的名称空间绑定的普通变量,即这些名称只在这些类与对象的前提下有效。

有两种类型的域——类的变量和对象的变量,它们根据是类还是对象拥有这个变量而区分。

类的变量由一个类的所有对象(实例)共享使用。只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。

对象的变量由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。通过一个例子会使这个易于理解。

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

如何工作:

这是一个很长的例子,但有助于说明类和对象变量的本质。这儿,population属于Robot类,因此是一个类变量。name变量属于对象(用self给其赋值),因此是一个对象变量。

大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!

因此,我们使用Robot.population来引用population类变量,而不是用self.population来引用。我们在该对象的方法中用self.name来引用对象变量name。记住类和对象变量之间这个简单的差别。也要注意一个与类变量有相同名字的对象变量会隐藏类变量!

好了,今天就分享到这里,Python是一个面向对象的编程语言,理解这些概念会在将来有助于你进一步深入学习Python,如果您也在学习Python,欢迎留言或转发给身边想学习Python的人,希望给想学习Python更多帮助,祝在学习编程开发者,早日成为开发大牛!

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: