1

Python之⾯向对象基础

 1 year ago
source link: https://blog.51cto.com/u_13236892/5938448
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Python之⾯向对象基础

精选 原创

哭泣的馒头 2022-12-14 22:53:01 博主文章分类:python基础 ©著作权

文章标签 创建对象 类名 定义类 文章分类 Linux 系统/运维 yyds干货盘点 阅读数223

一、理解⾯向对象

⾯向对象就是将编程当成是⼀个事物,对外界来说,事物是直接使⽤的,不⽤去管他内部的情况。⽽编程就是设置事物能够做什么事。

二、类和对象

类和对象的关系:⽤类去创建⼀个对象。
类是对⼀系列具有相同特征和⾏为的事物的统称,是⼀个抽象的概念,不是真实存在的事物。
特征即是属性
⾏为即是⽅法
类⽐如是制造洗⾐机时要⽤到的图纸,也就是说类是⽤来创建对象
对象是类创建出来的真实存在的事物,例如:洗⾐机。
注意:开发中,先有类,再有对象。

3、定义类

class 类名():
代码
......
注意:类名要满⾜标识符命名规则,同时遵循⼤驼峰命名习惯。

class Washer():
def wash(self):
print('我会洗⾐服')

不由任意内置类型派⽣出的类,称之为经典类
class 类名:
代码
......

4、创建对象

对象⼜名实例。
对象名 = 类名()

# 创建对象
haier1 = Washer()
# <__main__.Washer object at 0x0000018B7B224240>
print(haier1)
# haier对象调⽤实例⽅法
haier1.wash()
注意:创建对象的过程也叫实例化对象。

5、self

self指的是调⽤该函数的对象。
# 1. 定义类
class Washer():
def wash(self):
print('我会洗⾐服')
# <__main__.Washer object at 0x0000024BA2B34240>
print(self)
# 2. 创建对象
haier1 = Washer()
# <__main__.Washer object at 0x0000018B7B224240>
print(haier1)
# haier1对象调⽤实例⽅法
haier1.wash()
haier2 = Washer()
# <__main__.Washer object at 0x0000022005857EF0>
print(haier2)

注意:打印对象和self得到的结果是⼀致的,都是当前对象的内存中存储地址。

三、添加和获取对象属性

对象属性既可以在类外⾯添加和获取,也能在类⾥⾯添加和获取。

1、类外⾯添加对象属性

对象名.属性名 = 值

haier1.width = 500
haier1.height = 800

2、类外⾯获取对象属性

对象名.属性名

print(f'haier1洗⾐机的宽度是{haier1.width}')
print(f'haier1洗⾐机的⾼度是{haier1.height}')

3、类⾥⾯获取对象属性

self.属性名

# 定义类
class Washer():
def print_info(self):
# 类⾥⾯获取实例属性
print(f'haier1洗⾐机的宽度是{self.width}')
print(f'haier1洗⾐机的⾼度是{self.height}')
# 创建对象
haier1 = Washer()
# 添加实例属性
haier1.width = 500
haier1.height = 800
haier1.print_info()

四、魔法⽅法

在Python中, __xx__() 的函数叫做魔法⽅法,指的是具有特殊功能的函数。

1、init

__init__() ⽅法的作⽤:初始化对象。

class Washer():
# 定义初始化功能的函数
def __init__(self):
# 添加实例属性
self.width = 500
self.height = 800
def print_info(self):
# 类⾥⾯调⽤实例属性
print(f'洗⾐机的宽度是{self.width}, ⾼度是{self.height}')
haier1 = Washer()
haier1.print_info()

注意:
__init__() ⽅法,在创建⼀个对象时默认被调⽤,不需要⼿动调⽤
__init__(self) 中的self参数,不需要开发者传递,python解释器会⾃动把当前的对象引⽤传递过去。

2、带参数的init

思考:⼀个类可以创建多个对象,如何对不同的对象设置不同的初始化属性呢?
答:传参数。

class Washer():
def __init__(self, width, height):
self.width = width
self.height = height
def print_info(self):
print(f'洗⾐机的宽度是{self.width}')
print(f'洗⾐机的⾼度是{self.height}')
haier1 = Washer(10, 20)
haier1.print_info()
haier2 = Washer(30, 40)
haier2.print_info()

3、str

当使⽤print输出对象的时候,默认打印对象的内存地址。如果类定义了 __str__ ⽅法,那么就会打印从在这个⽅法中 return 的数据。

class Washer():
def __init__(self, width, height):
self.width = width
self.height = height
def __str__(self):
return '这是海尔洗⾐机的说明书'
haier1 = Washer(10, 20)
# 这是海尔洗⾐机的说明书
print(haier1)

4、del

当删除对象时,python解释器也会默认调⽤ __del__() ⽅法。
class Washer():
def __init__(self, width, height):
self.width = width
self.height = height
def __del__(self):
print(f'{self}对象已经被删除')
haier1 = Washer(10, 20)
# <__main__.Washer object at 0x0000026118223278>对象已经被删除
del haier1
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK