Python基础:面向对象编程(OOP)

在这里插入图片描述

  在Python中,面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,通过使用对象、类、继承、封装、多态等概念组织代码和数据。可能会涉及到的概念:
  类(Class):类是一个抽象的概念,用于描述一类对象的共同特征,定义了对象的属性(成员变量)和方法(成员函数)。
  对象(Object): 对象是类的一个实例,具体化了类的定义,拥有类定义的属性和方法。
  类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  局部变量:定义在方法中的变量,只作用于当前实例的类。
  实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用self修饰的变量。
  类方法:类中定义的函数。
  继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。派生类可以扩展或修改继承的内容,实现代码的重用和层次化的设计。
  封装:封装是将对象的状态(属性)和行为(方法)封装在一起,通过访问控制限制外部对对象内部数据的直接访问。通过双下划线前缀来创建私有属性和方法,实现基本的封装。
  多态:同一种操作作用于不同的对象上时,可以产生不同的行为。

1. 类定义语法

class ClassName:
    <statement-1>
    .
    .
    .
    <statement-N>

  与函数定义 (def 语句) 一样,类定义必须先执行才能生效。把类定义放在 if 语句的分支里或函数内部试试。
  在实践中,类定义内的语句通常都是函数定义,但也可以是其他语句。类里的函数定义一般是特殊的参数列表,这是由方法调用的约定规范所指明的
  当进入类定义时,将创建一个新的命名空间,并将其用作局部作用域 — 因此,所有对局部变量的赋值都是在这个新命名空间之内。 特别的,函数定义会绑定到这里的新函数名称。

2. Class对象

  类对象支持2种操作:属性引用实例化
  属性引用 使用 Python 中所有属性引用所使用的标准语法: obj.name。 有效的属性名称是类对象被创建时存在于类命名空间中的所有名称。 因此,如果类定义是这样的:

class myClass:
    """ A simple example class."""
    i = 12345
    def f(self):
        return 'hello,world!'
# myClass.i
# myClass.f
myClass.__doc__ # 输出 ' A simple example class.'

  那么 MyClass.iMyClass.f 就是有效的属性引用,将分别返回一个整数和一个函数对象。
  类属性也可以被赋值,因此可以通过赋值来更改 MyClass.i 的值。
__doc__也是一个有效的属性,将返回所属类的文档字符串: “A simple example class”。

  类的 实例化使用函数表示法。 可以把类对象视为是返回该类的一个新实例的不带参数的函数。
  实例化操作 (“调用”类对象) 会创建一个空对象。 许多类都希望创建的对象实例是根据特定初始状态定制的。 因此一个类可能会定义名为 __init__() 的特殊方法。当一个类定义了 __init__() 方法时,类的实例化会自动为新创建的类实例发起调用 __init__()

class Dog:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    
    def bark(self):
        return "Woof!"

# 创建一个Dog类的实例
my_dog = Dog('Scott',3)
# 访问对象的属性和调用对象的方法
print(f'狗的名字是:{
     my_dog.name}')
print(f'它叫的声音:{
     my_dog.bark()}'
  • 15
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snail哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值