2. 面向对象基础语法2.1 dir 内置函数和内置方法在 Python 中 对象几乎是无所不在的 , 我们之前学习的 变量、数据、函数 都是对象 。在 Python 中可以使用以下两个方法验证:
- 在 标识符 / 数据 后输入一个点 . , 然后按下 TAB 键 , iPython 会提示该对象能够调用的方法列表 。
- 使用内置函数 dir 传入 标识符 / 数据 , 可以查看对象内的 所有属性及方法 。
提示__方法名__格式的方法是 Python 提供的 内置方法 / 属性 。
提示 利用好 dir() 函数 , 在学习时很多内容就不需要死记硬背了 。
2.2 定义简单的类(只包含方法)
面向对象是更大的封装 , 在 一个类中封装多个方法 , 这样通过这个类创建出来的对象 , 就可以直接调用这些方法了!定义一个只包含方法的类:
class 类名:def 方法1(self, 参数列表):passdef 方法2(self, 参数列表):pass
方法 的定义格式和之前学习过的函数几乎一样 , 区别在于第一个参数必须是 self 。注意:类名的 命名规则 要符合 大驼峰命名法 。当一个类定义完成之后 , 要使用这个类来创建对象 , 语法格式如下:对象变量 = 类名()
在面向对象开发中 , 引用的概念是同样适用的!使用 print输出 对象变量 , 默认情况下 , 是能够输出这个变量 引用的对象 是 由哪一个类创建的对象 , 以及 在内存中的地址(十六进制表示) 。
提示:在计算机中 , 通常使用 十六进制 表示 内存地址 。如果在开发中 , 希望使用 print输出 对象变量 时 , 能够打印 自定义的内容 , 就可以利用 __str__这个内置方法了:
class Cat:def __init__(self, new_name):self.name = new_nameprint("%s 来了" % self.name)def __del__(self):print("%s 去了" % self.name)def __str__(self):return "我是小猫:%s" % self.nametom = Cat("Tom")print(tom)
注意:__str__方法必须返回一个字符串 。2.3 方法中的 self 参数在 Python 中 , 要 给对象设置属性 , 非常的容易 , 只需要在 类的外部的代码 中直接通过 对象.设置一个属性即可 , 但是不推荐使用:
看完这篇文章 , 你的Python基础就差不多了class Cat:"""这是一个猫类"""def eat(self):print("小猫爱吃鱼")def drink(self):print("小猫在喝水")tom = Cat()# 给对象设置属性tom.name = "Tom"
因为:对象属性的封装应该封装在类的内部由哪一个对象调用的方法 , 方法内的 self就是哪一个对象的引用
- 在类封装的方法内部 , self 就表示当前调用方法的对象自己 , 在方法内部:
可以通过 self.访问对象的属性 , 也可以通过 self.调用对象的其他方法 。 - 调用方法时 , 程序员不需要传递 self 参数 。
- 在 类的外部 , 通过变量名.访问对象的 属性和方法
在 类封装的方法中 , 通过 self.访问对象的 属性和方法
- 当使用 类名() 创建对象时 , 会 自动 执行以下操作:
为对象在内存中分配空间 —— 创建对象
为对象的属性设置初始值 —— 初始化方法(__init__)
__init__ 方法是 专门 用来定义一个类具有哪些属性的方法!
- 在 __init__ 方法内部使用 self.属性名 = 属性的初始值 就可以定义属性 , 定义属性之后 , 再使用 类创建的对象 , 都会拥有该属性 。
- 在开发中 , 如果希望在 创建对象的同时 , 就设置对象的属性 , 可以对 __init__ 方法进行 改造: 把希望设置的属性值 , 定义成 __init__方法的参数 在方法内部使用 self.属性 = 形参 接收外部传递的参数 在创建对象时 , 使用 类名(属性1, 属性2...) 调用
推荐阅读
- 拆解固态硬盘结构
- 茉莉花茶怎么泡,茉莉花茶如何喝
- MITM 如何避免中间人攻击
- 茉莉花茶作用,喝茉莉花茶的好处和功效作用
- 洛神花茶降火吗,洛神花茶的功效及其作用
- 如何看玫瑰花茶好坏,玫瑰花茶到底是什么茶
- 桃花茶的功效与作用,桃花茶的功效和作用
- 花草茶常用有哪些,常用的花草茶有哪些
- 三七花茶的副作用与禁忌,牛蒡茶的副作用
- 百合花如何喝,茉莉花茶如何喝