持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
1. 定义简单的类(只包含方法)
面向对象是更大的封装,在一个类中封装多个方法,这样通过这个类创建出来的对象,就可以直接调用这些方法了。 Python中定义只包含方法的类,基本语法格式如下所示:
- 类名要符合大驼峰命名法
- 使用
def定义方法,与定义函数比较相似,但是第一个参数必须是self - 若后面有参数就跟一个参数列表,如果没有参数就只要一个
self
class 类名:
def 方法1(self, 参数列表):
pass
def 方法2(self, 参数列表):
pass
2. 创建对象
当一个类定义完成之后,若要使用这个类来创建对象,基本语法格式如下所示:
对象变量 = 类名()
等号前用一个变量来接收,类名后跟上一个小括号。这样,我们就能使用刚刚定义的类来创建对象了。
3. 实例演练
下面将进行面向对象程序演练。
程序需求:小猫爱吃鱼,小猫要喝水
根据需求进行如下初步分析:
- 定义一个猫类:
Cat - 定义两个方法
eat和drink - 按照需求--不需要定义属性 具体代码如下所示:
首先定义了猫类。然后在猫类中定义相应的方法。进而,创建猫对象。最后,通过对象调用方法。
class Cat:
# 定义吃鱼的方法
def eat(self):
print("小猫爱吃鱼")
# 定义喝水的方法
def drink(self):
print("小猫要喝水")
# 创建猫对象
tom = Cat()
# 对象调用方法
tom.drink()
tom.eat()
程序运行结果如下图所示:
4. 面向对象开发中的引用
在面向对象开发中,引用的概念是同样适用的!
在Python中使用类创建对象之后,tom变量中仍然记录的是对象在内存中的地址。也就是tom变量引用了新建的猫对象。
使用print输出对象变量,默认情况下,是能够输出这个变量引用的对象是由哪一个类创建的对象,以及在内存中的地址(十六进制表示)
注意:
%d可以以10进制输出数字%x可以以16进制输出数字- 在计算机中,通常使用十六进制表示内存地址,十进制和十六进制都是用来表达数字的,只是表示的方式不一样。十进制和十六进制的数字之间可以来回转换。
下面将对面向对象编程开发中引用进行代码演示:
# 输出变量
print(tom)
# 使用id函数查询数据在内存中的地址
addr = id(tom)
print("以十进制输出:%d" % addr)
print("以十六进制输出:%x" % addr)
程序运行结果如下图所示: