python是一种面向对象的高级语言,python中面向对象的概念

  python是一种面向对象的高级语言,python中面向对象的概念

  仅用于研究参考。

  对象是什么?

  目标内置函数定义简单类(仅包含方法)初始化方法内置方法和属性01中的自身参数。dir内置函数对象在Python中几乎无处不在。我们之前学过的变量、数据、函数都是对象。您可以使用以下两种方法在Python中验证它们:

  在标识符/数据后输入a .然后按TAB键。iPython将提示对象可以调用的方法列表。使用内置函数dir传入标识符/数据,可以查看对象中的所有属性和方法。_ _ method name _ _格式的方法是Python提供的内置方法/属性。后面我会给大家介绍一些常用的内置方法/属性。

  序列号

  方法名称

  类型

  功能

  01

  新的

  方法

  当一个对象被创建时,它将被自动调用。

  02

  初始化

  方法

  当对象初始化时,它将被自动调用。

  03

  倒三角形

  方法

  该对象将在从内存中销毁之前被自动调用。

  04

  潜艇用热中子反应堆(submarine thermal reactor的缩写)

  方法

  返回对象的描述信息,打印函数输出使用

  小贴士:善用dir()函数,学习时不需要背很多内容。

  02.定义一个简单的类(只有方法)

  面向对象是更大的封装,把多个方法封装在一个类中,这样这个类创建的对象就可以直接调用这些方法了!

  2.1定义一个只包含方法的类。在Python中,应该定义一个只包含方法的类。语法格式如下:Class类名:

  方法1(自我,参数列表):

  及格

  方法2(自我,参数列表):

  pass方法的定义格式和之前学过的函数几乎一样。不同的是第一个参数必须是self。先暂时记住,以后再介绍self。

  注意:类名的命名规则要符合大驼峰命名法。

  2.2创建一个对象当一个类定义完成后,这个类应该用来创建一个对象。语法格式如下:对象变量=类名()2.3第一个面向对象程序的要求

  小猫喜欢鱼,小猫想要水。

  分析一只猫猫,定义两种方法,吃和喝。根据要求——,无需定义属性类别Cat:

  这是一只猫

  定义吃(自己):

  打印(“小猫喜欢鱼”)

  定义饮料(自我):

  打印(“小猫在喝水”)

  汤姆=猫()

  汤姆.饮料()

  Tom.eat()强调引用的概念

  在面向对象开发中,引用的概念同样适用!

  在Python中使用类创建对象后,对象在内存中的地址仍然记录在tom变量中,即tom变量引用新创建的cat对象。默认情况下,它可以输出对象变量,该变量引用的对象是由哪个类创建的,以及它在内存中的地址(十六进制表示)。

  提示:在计算机中,内存地址通常用十六进制表示。

  十进制和十六进制都用来表示数字,只是表达方式不同。十进制和十六进制数字可以相互转换。

  %d可以输出十进制数字%x可以输出十六进制数字。Case Advanced ——使用Cat类创建另一个对象lazy_cat=Cat()

  lazy_cat.eat()

  lazy_cat.drink()

  问题:tom和lazy_cat是一个对象吗?

  03.方法3.1 case变换中的self参数——在Python中给对象添加属性,给对象设置属性是非常容易的,但是不建议这样做,因为:对象属性的封装应该封装在类内部,只需要直接通过类外的代码即可。设置一个属性。

  注意:这种方法虽然简单,但不推荐!

  汤姆。name=汤姆

  .

  Lazy_cat.name= lazy cat 3.2使用self输出方法内部每只猫的名字。

  哪个对象调用方法,方法中的自我就是哪个对象的引用。

  在类封装的方法内部,self是指当前调用方法的对象调用方法本身时,程序员不需要传递self参数。在该方法中,可以通过自身访问对象的属性。或者其他对象方法可以通过self调用。修改代码如下:类别类别:

  定义吃(自己):

  打印(“%s喜欢鱼“% self.name”)

  汤姆=猫()

  汤姆。name=汤姆

  tom.eat()

  lazy_cat=Cat()

  Lazy_cat.name=懒猫

  lazy_cat.eat()

  在类外部,通过变量名访问对象的属性和方法。在类封装的方法中,通过self访问对象的属性和方法。04.方法4.1初始化前代码存在的问题。3354在类外给对象添加属性调整案例代码,先调用方法再设置属性,观察执行效果tom=Cat()

  汤姆.饮料()

  tom.eat()

  汤姆。name=汤姆

  Print(tom)按如下方式执行:

  在[7]中:分类类别:

  .def eat(自身):

  .print(%s爱鱼 % self.name)

  .

  在[8]:汤姆=猫()

  在[9]:汤姆.饮料()

  -

  AttributeError Traceback(最近一次调用)

  模块()中的ipython-input-9-3b5ae6127180

  - 1 tom.drink()

  AttributeError: Cat实例没有属性“drink”

  在[10]: tom.eat()

  -

  AttributeError Traceback(最近一次调用)

  模块()中的ipython-input-10-2c4e517d4867

  - 1 tom.eat()

  ipython-input-7-5e 70 b 89 CBD 9 e in eat(self)

  1类猫:

  2 def吃(自己):

  -3 print(“% s喜欢鱼“% self.name”)

  四

  AttributeError: Cat实例没有属性“name”

  In [11]: tom.name=Tom

  在[12]:打印(汤姆)

  __main__。0x0000000006885A48处的Cat实例

  在[13]中:可以看到上面的执行都报告了错误。提示Cat类没有名称drink之类的属性。

  建议在日常开发中,不建议在类外给对象添加属性。如果在运行时没有找到属性,程序将报告一个错误,说明对象应该包含哪些属性,哪些属性应该封装在类中。4.2初始化方法——构造方法在创建类名为()的对象时,会自动执行以下操作:为对象分配内存空间——创建对象并为对象的属性设置初始值——初始化方法(init)。这个初始化方法是__init__方法,而__init__是对象的内置方法。

  __init__ method是专门用来定义一个类有哪些属性的方法!

  将__init__方法添加到DeadFatBoy类中,并验证在[14]:类DeadFatBoy:

  .def __init__(self):

  .print(这是一个死胖阶级)

  .

  [15]:4.3在初始化方法中定义属性。利用自我。Attribute name=在__init__方法中定义属性的属性的初始值。定义属性后,所有使用死胖男孩类创建的对象都将在[16]中拥有该属性:类Dead Fat Boy:

  .def __init__(self):

  .print(这是一个死胖阶级)

  .self.nick=一个死胖子

  .def eat(自身):

  .print(%s love house% self.nick)

  .

  In [17]: libai=DeadFatBoy()

  这是一个死肥班。

  在[18]: libai.eat()

  死胖子爱房子。

  在[19]中:

  在[19]:任飞=死胖子()

  这是一个死肥班。

  在[20]: renfei.eat()

  死胖子爱房子。

  [21]:4.4初始化方法的修改3354在初始化的同时设置初始值在开发中,如果要在创建对象的同时设置对象的属性,可以修改__init__方法来设置所需的属性值,参数定义为__init__方法使用self。attribute=方法内部的形参,用于接收外部传递的参数。当创建一个对象时,用类名[21]: class DeadFatBoy调用(属性1,属性2.):

  .def __init__(self,name):

  .print(这是一个死胖阶级)

  .self.nick=一个死胖子

  .self.name=name

  .def eat(自身):

  .print(%s love house% self.nick)

  .

  [22]:李白=死胖子(“李白”)

  这是一个死肥班。

  在[23]:打印(libai.name)

  05.李白内置方法及属性序号

  方法名称

  类型

  功能

  01

  __del__

  方法

  该对象将在从内存中销毁之前被自动调用。

  02

  __str__

  方法

  返回对象的描述信息,打印函数输出使用

  5.1 __del__方法在Python中,当创建一个类名为()的对象时,为对象分配空间后,自动调用__init__方法。在从内存中销毁对象之前,会自动调用__del__方法。应用场景__init__转换初始化方法,可以使创建对象更加灵活__del__如果你想在对象被销毁之前做些什么,可以考虑__del__方法的生命周期。通过调用类名()创建对象,生命周期开始。一旦调用了对象的__del__方法,它的生命周期就在对象的生命周期内结束,因此您可以访问对象属性,或者让对象调用[24]中的方法:

  .def __init__(self,name):

  .print(这是一个死胖阶级)

  .self.nick=一个死胖子

  .self.name=name

  .def eat(自身):

  .print(%s love house% self.nick)

  .def __del__(self):

  .打印( %s已销毁 % self.name )

  .

  [25]:李白=死胖子(“李白”)

  这是一个死肥班。

  [26]:德尔李白

  李白被毁灭了

  [27]:Python中的5.2 __str__方法,使用print输出对象变量。默认情况下,它将输出该变量引用的对象是由哪个类创建的,以及内存中的地址(十六进制表示)。如果您想在使用print in development打印对象变量时打印自定义内容,可以使用内置方法__str__

  注意:__str__方法必须返回一个字符串。

  # #默认情况下,在使用__str__方法之前返回内存地址。

  在[12]:打印(汤姆)

  __main__。0x0000000006885A48处的Cat实例

  # #使用__str__自定义print (class)的返回信息

  [27]班里死胖子:

  .def __init__(self,name):

  .print(这是一个死胖阶级)

  .self.nick=一个死胖子

  .self.name=name

  .def eat(自身):

  .print(%s love house% self.nick)

  .def __del__(self):

  .打印( %s已销毁 % self.name )

  .def __str__(self):

  .return“% s”是一个小胖子“% self.name

  .

  [28]:李白=死胖子(“李白”)

  这是一个死肥班。

  [29]:印刷(立白)

  李白是一个小胖子。

  在[30]中:

  关注微信微信官方账号,回复【数据】,Python,PHP,JAVA,web,即可获取Python,PHP,JAVA,前端等视频数据。

  来自海洋的渔夫原创作品,

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

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