类和对象的基本方法

自学整理记录,大神见笑

面向对象的基本概念

面向过程---怎么做

  • 把完成某一个需求的所有步骤从头到尾逐步实现;根据需求将功能独立的代码封装成多个函数;完成代码就是顺序调用不同函数
  • 特点:注重步骤和过程,不注重分工职责;需求复杂影响代码复杂

面向对象---谁来做

  • 完成某一需求前确定职责;根据职责确定对象,对象内部封装多个方法;完成代码就是顺序的让不同对象调用不同方法
  • 特点:注重对象和职责,分工明确;适合复杂需求

类和对象

  • 类就是对一群具有相同特征和行为的事物的统称,不能直接使用;特征就是属性,行为就是方法
  • 类是负责创建对象的

对象

  • 对象是由类创建出来的具体存在
  • 由哪个类创建,就拥有哪一个类的属性和方法
  • 注:先有类,后有对象

类和对象关系

  • 类创建对象
  • 类只有一个,对象有多个
  • 不同对象间的属性和方法可能不同
  • 对象拥有的属性和方法都是类所拥有的
  • 先有类,后有对象

类的设计

  • 类名要满足大驼峰命名
  • 三要素:类名,属性,方法

面向对象基本语法

__dir__内置函数

  • 变量,数据,函数都是对象
  • Python中确定是否是对象的方法:
    1.在标识符/数据后输入一个.,然后按下Tab键,在iPython中会提示该对象能够调用的方法列表
    2.使用内置函数dir传入标识符/数据,查看对象内的所有属性和方法
  • 注:__方法名__格式的方法是Python提供的内置方法/属性
序号 方法名 类型 作用
01 __new__ 方法 创建对象时,会自动调用
02 __init__ 方法 对象被初始化时,会被系统调用
03 __del__ 方法 对象从内存被销毁前,会自动调用
04 __str__ 方法 返回对象的描述信息,print函数输出使用

定义简单的类

  • 一个类中封装多个方法,通过类创建对象,然后用对象就可以直接调用这些方法
  • 定义格式:

class 类名:
 def 方法1(self,参数列表):
  pass
 def 方法2(self,参数列表):
  pass

  • 参数的第一个参数必须是self

创建对象

  • 语法格式如下:

对象变量 = 类名()

  • print直接打印对象变量,输出的是对象的引用
  • 技巧:格式化字符串%d,显示十进制;%x,显示十六进制

方法中的self参数

  • 对象属性的封装应该封装在类的内部
  • 可以在类的外部直接通过.设置一个属性,但不推荐使用,因为如果在调用方法后添加属性,属性还在方法中使用,则会报错NameError
  • 哪一个对象调用,self就代表哪一个对象的引用
  • 在方法内部,可以用self.访问对象的属性或者调用对象的其他方法

初始化方法

  • 类名()调用时,会自动执行下列操作:
    1.在内存中为对象分配空间---创建对象
    2.为对象的属性设置初始值---初始化方法(init)
  • 这个初始化方法是__init__,该方法是对象的内置方法

初始化方法内部定义属性

1.把希望设置的属性值定义在__init__方法的参数中
2.在方法内部使用self.属性 = 形参接收外部传递的参数
3.在创建对象时,使用类名(属性1,属性2...)调用

  • 之后该类创建的对象都会具有该属性

class Cat:
 def __init__(self,name):
  print("初始化方法 %s" % name)
  self.name = name
 ...
tom = Cat("Tom")
...
lazy_cat = Cat("大懒猫")

内置方法和属性

__del__方法

  • 对象在内存中被销毁前调用的方法

__str__方法

  • 该方法必须返回字符串
  • print(对象),默认会打印对象的引用,但是这个类中有__str__方法,那么print会打印该方法返回的字符串
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容