python是一门面向对象的编程语言_python 面向对象编程

本文详细介绍了Python的面向对象编程概念,包括类、对象、类变量、实例变量、方法重写、实例化、构造方法、访问权限、继承、多态、封装、多重继承以及获取对象信息等关键知识点。通过实例代码解释了类的定义、构造方法的使用、属性的访问控制、继承和多态的实现。最后,探讨了Python中对象的`__str__`、`__repr__`、`__iter__`、`__getitem__`、`__getattr__`和`__call__`等专有方法的作用和用法。
摘要由CSDN通过智能技术生成

1. 面向对象常用术语

Python是一门面向对象编程语言。

面向对象编程是一种程序设计思想,把对象作为程序的基本单元,一个对象包含数据和操作数据的函数。

在Python中,所有数据类型都被视为对象,也可以自定义对象。自定义对象数据类型就是面向对象中的类(Class)的概念。

类:用来描述具有相同属性和方法的对象的集合。类定义了集合中每个对象共有的属性和方法。

对象:对象是类的实例。

类变量(属性):类变量在整个实例化的对象中是公用的。类变量定义在类中,且在方法之外。类变量通常不作为实例变量使用。类变量也称作属性。

实例变量:定义在方法中的变量只作用于当前实例的类。

数据成员:类变量或实例变量用于处理类及其实例对象的相关数据。

方法重写:如果从父类继承的方法不能满足子类的需求,就可以对其进行改写,这个过程称为方法的覆盖(Override),也称为方法的重写。

实例化(Instance):创建一个类的实例、类的具体对象。

方法:类中定义的函数。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

面向对象的三大特性:

多态(Polymorphism):对不同类的对象使用同样的操作。

封装(Encapsulation):对外部世界隐藏对象的工作细节。

继承(Inheritance): 即一个派生类(derivedclass)继承基类(base class)的字段和方法。

2. 类

2.1 类的定义和对象实例化

类用关键字 class 进行定义,定义一个类,通常要定义属性和方法。类在定义后,一般通过类实例化对象,然后通过对象访问类的属性和方法。

class Dog(): # 定义了一个Dog类

name = "小花" # 类的属性

def cry(self): # 类中定义的方法

return "汪汪汪"

dog = Dog() # 实例化对象

# 通过对象调用类的属性和方法。

print(f"我的小狗名字为:{dog.name},它喜欢{dog.cry()}的叫")

我的小狗名字为:小花,它喜欢汪汪汪的叫

2.2 类的构造方法

在Python中,_init_()方法是一个特殊方法,在对象实例化时会被调用。_init_()的意思是初始化,是initialization的简写。这个方法也叫构造方法。在定义类时,若不显式地定义一个_init_()方法,则程序默认调用一个无参的_init_()方法。

class Dog():

name = "小花"

def __int__(self): # 不显示定义,默认调用该构造方法

pass

dog = Dog()

dog.name

'小花'

class Dog():

def __init__(self,name):

self.name = name

print(f"构造方法带一个参数:{self.name}")

dog = Dog("小花")

构造方法带一个参数:小花

class Dog():

def __init__(self,name,age):

self.name = name

self.age = age

print(f"构造方法带两个参数:{self.name}-{self.age}")

dog = Dog("小花","2岁")

构造方法带两个参数:小花-2岁

2.3 类的访问权限

类的访问权限在类内部有属性和方法,外部代码可以通过直接调用实例变量的方法操作数据,这样就隐藏了内部的复杂逻辑。

class Dog():

def __init__(self,name,age):

self.name = name

self.age = age

def show_info(self):

print(f"姓名:{self.name}\t 年龄:{self.age}")

dog = Dog("小花","2岁")

print(f"修改前的年龄:{dog.age}")

dog.show_info()

dog.age = &#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值