python面向对象学习_python面向对象编程学习

本文介绍了Python中的面向对象编程,包括对象的概念、类的定义与实例化、访问限制、继承与多态。通过实例展示了如何创建类、实例化对象以及如何利用继承实现代码复用。同时,文中提到了Python的多态性,允许新增父类的子类并保持接口一致性。最后,讨论了如何获取对象信息,如使用`type()`、`isinstance()`和`dir()`函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编辑推荐:

来源于csdn,通过概念的理解,类与实例,继承与多态等等。

基本概念理解

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

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

面向对象的设计思想是抽象出Class,根据Class创建Instance

类与实例

#对象

class Student(object):

def __init__(self, name, score):

self.name = name;

self.score = score;

def print_score(self):

print('%s: %s' % (self.name, self.score));

def get_grade(self):

if self.score >= 90:

return 'A';

elif self.score >= 60:

return 'B';

else:

return 'C';

bart = Student("yehui", 99);

lisa = Student("yehui01", 55);

bart.print_score();

lisa.print_score();

print(lisa.get_grade());

# 注意到__init__方法的第一个参数永远是self,

# 表示创建的实例本身,因此,在__init__方法内部,

# 就可以把各种属性绑定到self,因为self就指向创建的实例本身。

访问限制

如果我们不想让对象的实例的属性值被外部代码修改的话,我们就可以把属性的名称前面加上两个下划线__,实例的变量名如果以下划线

开头,那么他就是一个私有变量。

继承与多态

在面向对象编程的语言中,继承是其主要的特性之一(封装、多态、继承),在python中,他的面向对象编程的继承和c++等面向对象语言相类似,就是子类可以继父类的属性和方法,通过继承,子类获得了父类的全部功能。我就不总结了,下面是他的继承方式及格式:

#继承

class Animal(object):

def run(self):

print("Animal is running...");

class Dog(Animal):

def run(self):

print("Dog is running...");

class Cat(Animal):

def eat(self):

print("Cat is meating...");

class Pig(Animal):

pass;

dog = Dog();

dog.run();

cat = Cat();

cat.run();

cat.eat();

pig = Pig();

pig.run();

# Dog is running...

# Animal is running...

# Cat is meating...

# Animal is running...

你可以自己在给继承父类的子类添加方法和属性,也可也不添加。也可以重写父类的方法,这样子类的方法将会覆盖掉父类的方法。这就是继承的一个好处:多态。

#多态

def run_twice(animal):

animal.run();

animal.run();

run_twice(Animal());

run_twice(Dog());

# Animal is running...

# Animal is running...

# Dog is running...

# Dog is running...

python多态允许我们新增父类的子类。对修改封闭:不需要修改依赖Animal类型的run_twice()等函数。

Python是动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以了

获取对象信息

通过python内置的一系列函数,我们可以对任意一个对象进行剖析

使用 type()函数判断对象的类型;

使用isinstance()来判断类class的继承类型;

使用dir()函数获取一个对象的所以属性和方法。

总结

python的面向对象编程的思想和其他的面向对象程序语言大同小异,只不过是写法和用法的有差异而已,我因为之前有学过c++,所以在这部分的学习比较粗略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值