Python学习

Python学习,面向对象程序设计,欢迎关注公众号"Fish小站"讨论交流

面向过程:这是一种以过程为中心的编程思想,需要先分析解决问题所需要的步骤,在使用函数一步一步实现,在使用是依次调用,程序主要分为数据和操作数据的部分,核心极为数据结构和算法优化

面向对象:是一种程序设计思想,将对象作为程序的基本单元,一个对象包含数据和操作数据的函数,程序段中的对象可以接收其他对象发来的消息

面向对象面向过程
优点易复用,扩展,低耦合性能高
缺点性能较低不易复用,扩展

1、定义一个教师(Teacher)类,属性有姓名、年龄,方法有教学生

class Teacher(object):
    # 创建类
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def study(self):
        print(f"{self.name}老师教学生")


ti = Teacher('张', 40)
# 实例化对象
ti.study()
# 调用方法

2、定义一个水果类,创建对象并添加属性

class Fruits(object):
    pass


# 实例化对象
apple = Fruits()
# 给实例化对象添加属性
apple.color = 'red'

3、__init__方法的作用

在类中定义__init__方法,用于监听类实例化成对象的过程

使用__init__方法在创建实例时,实例具有自己特有的属性,在Teacher 类中,ti 这个对象有自己特有的属性‘张’、‘40’

4、__str__方法的作用

在类中定义__str__方法,用来追踪类中属性值的变化

# 使用__str__方法
class Fruits(object):
    def __init__(self, color):
        self.color = color

    def __str__(self):
        return f'{self.color}'


# 实例化对象
apple = Fruits('green')
print(apple)      # green
apple.color = 'red'
# 修改对象的属性值
print(apple)     # red
# 不使用__str__方法
class Fruits(object):
    def __init__(self, color):
        self.color = color


# 实例化对象
apple = Fruits('green')
print(apple)  # <__main__.Fruits object at 0x000001C86CC00B20>
# 只能通过.运算符调用对应的属性进行输出
print(apple.color)  # green
apple.color = 'red'
# 修改对象的属性值
print(apple)  # <__main__.Fruits object at 0x000001C86CC00B20>
print(apple.color)  # red

5、属性的权限

在属性名前加上__将属性设置为私有

class study(object):
    def __init__(self, name):
        self.__name = name


si = study('xm')
# print(si.name)    # AttributeError: 'study' object has no attribute 'name'
# 类外部访问私有变量时
print(si._study__name)  # 类外部访问内部私有属性格式:对象._类名__私有属性
# 尽量不要在类外部对类内部私有属性进行访问

6、子类与父类

子类重写父类的__init__方法后,再次使用父类方法时

super().__init__()

 子类重写父类方法后会默认使用子类的方法

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值