python中对象的概念是什么-如何理解对象-,python面向对象和类

  python中对象的概念是什么?如何理解对象?,python面向对象和类

  

  类的概念与定义

  生活中,我们走在路边,看到一辆车,首先想到的是“这是一辆车,然后是什么牌子的车”。这里,我们在编程中使用类的概念。同样的,看到小狗,你首先会想到它是一只狗,然后你会想到它是什么品种的狗。在编程中,同类事物称为类,对这个类中的共同特征进行总结和定义,这些特征就是类的属性;总结和定义这个类能做什么,能做什么,是类的技能。

  举个例子:

  我想定义一个人的阶级。如何用python实现?

  首先,我们都有什么共同特征?每个人都有两只眼睛,两条腿等。这些都是每个人都有的特点。

  其次,每个人都有自己独特的特点。每个人的名字都不一样,每个人都有自己的年龄、性别、学历等等。这些都是每个人独有的特点。

  最后,每个人都有的技能包括吃饭、睡觉、走路、学习等。这些都是大家都有的技能。

  现在,我们可以定义人的阶级。具体实现代码如下:

  classPerson:

  class是定义一个类的关键字,class后面的人是类的名字。python解释器会将关键字class后的名称设置为类的名称。

  默认情况下,类名是大写的。

  #定义每个人都有两只眼睛

  眼睛=2

  #定义每个人都有两条腿

  腿=2

  def__init__(本人,姓名,年龄,性别,学历):

  定义每个人的独特特征。在这里,每个人都有自己的名字,年龄,性别和教育背景

  self.name=name

  年龄=年龄

  自我.性=性

  自我教育=教育

  打败(自己):

  #定义每个人都要吃的技能

  打印( % siseatingfood % self.name )

  defwalk(self):

  #定义每个人都有的行走技巧

  打印( % siswalkingslow % self.name )

  defstudy(self):

  #定义每个人拥有的学习技能

  print( % Sistudinghard % self . name )执行上面的代码,python解释器会在内存中开辟一块内存空间,保存类中定义的人类的特征和技能。

  在上面的代码中,在定义人类的共同特征时,相当于在人类的命名空间中定义了两个变量,而在定义人类的独特特征时,

  相当于是在人类的名称空间里,声明了一个名叫“初始化”的函数,在函数中存放代表了每个人独有的特征的变量。

  而接下来的三个函数则用来表示每个人都会做的动作,python解释器同样会为这三个函数在存放人类的名称空间的内存中开辟三块区域用来存放这三个函数(也可以称之为人类共有的技能。

  相关推荐:《Python视频教程》

  对象的概念与定义

  在编程的世界里,定义出一个类之后,我们就可以用这个类生成一个个的人,这个过程我们也称之为类的实例化,生成之后的人我们则称之为对象。

  现在我想用上面的程序实例化出两个人,要怎样实现呢??

  

person1=Person("jack",22,"male","college")

  person2=Person("lily",18,"female","middleschool")

这样我们就实例化出两个人:

  第一个人名字叫jack,22岁,性别为男,大学学历,

  第二个个名字叫lily,18岁,性别为女,中学学历。

  对象的使用

  现在我们已经创建出了两个人,现在可以调用这两个人的特征和技能了

  比如,我想知道person1的特征,可以使用如下方法:

  

print(person1.name)#查看person1的名字,输出为:jack

  print(person1.age)#查看person1的年龄,输出为:22

  print(person1.sex)#查看person1的性别,输出为:male

  print(person1.education)#查看person1的学历,输出为:college

查看person1的技能时:

  

person1.walk()#调用person1的行走的技能

  会打印:jackiswalkingslow

  person1.eat()#调用person1的吃饭的技能

  会打印:jackiseatingfood

  person1.study()#调用person1的学习的技能

  会打印:jackisstudyinghard

查看person2的特征和技能时使用同样的方法

  类与对象的对比分析

  

print(Person.eat,person1.eat,person2.eat)
执行结果如下:

  

<functionPerson.eatat0x0000000002951BF8>

  <boundmethodPerson.eatof<__main__.Personobjectat0x000000000295D240>

  <boundmethodPerson.eatof<__main__.Personobjectat0x000000000295D278>>

分别调用类的吃饭的方法,以及person1和person2的吃饭的方法,可以看到它们的内存地址都不一样,同样的,调用他们的其他的走路和学习的方法,它们各自的内存空间也都不一样,这充分说明了它们在内存中是各自开辟了一段自己的独有的内存空间。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: