python-进阶1

1. 面向对象

"""
1. 面向对象:
    利用对象来封装数据和操作那些数据的方法
2. 主要目的:
    提高程序的可维护性和可扩展性
"""

1.1 定义类

"""
# 定义类
class 类名:
    # 定义方法
    方法列表...
    
# 创建对象的语法格式如下:
对象名 = 类名()    # 创建对象

# 可通过对象名.方法来调用方法
对象名.方法名()    #调用方法
"""
# 定义类:class 类名:
class Car:
    # 定义方法:跑起来
    def run(self):
        print('能跑起来...')

# 创建对象:对象名 = 类名()
car = Car()
# 调用方法:对象.方法名()
car.run()

1.2 self 关键字

"""
为什么需要self关键字:
    类和对象的关系1:N ,为了区分那个对象调用了类的方法,引入了self
    谁调用run函数 self就是谁
self关键字的作用:
    在类的内部,调用类的方法 self.work()

关键字 self 
    self也是Python内置的关键字之一,其指向了对象实例本身【对象自己】
    在类内部调用方法:一般用在私有方法上
"""

# 1.定义类:类名使用大驼峰方式命名
class Car():
    def run(self):
        print('能跑起来...')

    # 在类内部调用方法:对象名.方法名()->self.方法名()
    def work(self):
        self.run()

# 2.定义对象:对象名一般小驼峰命名
car = Car()

# 3.调用方法:对象名.方法名()
car.work()

1.3 对象属性-添加和获取

"""
添加属性 
    对象名.属性 = 属性值
获取属性
    对象名.属性
类内部获取对象属性
    在类的内部: self.属性
"""
# 1.定义类:类名使用大驼峰方式命名
class Car():
    def run(self):
        print('能跑起来...')

    # 在类内部调用方法:对象名.方法名()->self.方法名()
    def work(self):
        self.run()

# 2.定义对象:对象名一般小驼峰命名
car = Car()
car.color = 'red'
print(car.color)

1.4 魔法方法

"""
对于魔法方法,都有一个共同的特性,那就是它们总是被双下划线所包围,如下:
__魔法方法名__()
语法:
class 类名:
	def __魔法方法名__(self[,xxx,xxx]):
		代码
		...
魔法方法: 与普通方法区别
	自动调用,特殊情况下
	前后被双下滑线包围

init方法:创建对象时自动调用,用来对对象属性进行赋值
	无参(self):在类内部进行属性值的确定
	有参: 通过类外部实现属性值的设置

str方法:print(对象)是自动调用,直接输出str方法返回的结果

del方法:删除对象时自动调用
"""

1.5 _ _ init _ _()

"""
无参数的__init__()方法
当仅需在类内部使用及初始化某些属性时,可以使用,格式如下:
def __init__(self):
	# 初始化属性     对象名.属性 = 属性值
	self.属性 = 属性值
    代码
    ......
"""
# 1.定义类
class Car:
    # 1.1 设置属性:__init__
    def __init__(self):
        self.color = 'red'
        self.number = 4

    # 1.2 获取属性: self.属性名
    def show(self):
        print(f'车身颜色:{self.color}')
        print(f'车轮数:{self.number}')

# 2.创建对象:对象名 = 类名()
car = Car()

# 2.1 获取属性
# 类内部
car.show()
"""
有参数的__init__()方法
def __init__(self,参数1,参数2,...):
    代码
    ......
"""
# 1.定义类
class Car:
    # 1.1 设置属性:__init__
    def __init__(self, color, number):
        self.color = color
        self.number = number

    # 1.2 获取属性: self.属性名
    def show(self):
        print(f'车身颜色:{self.color}')
        print(f'车轮数:{self.number}')

# 2.创建对象:对象名 = 类名()
car = Car('black', 8)

# 2.1 获取属性
# 类内部
car.show()

1.6 _ _ str _ _()

"""
当使用print输出对象时,默认打印对象的内存地址值【十六进制】。   若要让输出对象名时,不是内存地址值,应该要在类中定义str方法。
如果类定义了`__str__`方法,那么就会打印从在这个方法中 return的数据
语法:
class 类名:
	def __str__(self):
		代码
		...
		return 值   # 说明:值的类型必须是字符串类型
"""
# 定义类
class Car:
    # 属性的设置
    def __init__(self):
        self.color = '红色'
        self.number = 4

    # str:输出属性信息
    def __str__(self):
        # return f'{self.color}的汽车有{self.number}个车轮'
        print(f'{self.color}的汽车有{self.number}个车轮')

# 创建对象
car = Car()

# 打印对象
print(car)

1.7 _ _ del _ _()

"""
当一个实例被销毁时调用的方法
"""
# 1.定义类
class Car:
    # 1.1 属性赋值
    def __init__(self,color):
        self.color = color

    # 1.2 del魔法
    def __del__(self):
        print('自动调用了del魔法方法')

# 2.创建对象
car = Car('红色')
# 3.获取属性
# print(car.color)
del car
print(car.color)
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值