面向对象
Python从设计之初就已经是一门面向对象的语言,相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法。
步骤如下:
1、OOA面向对象分析:在完成某一个需求前先确定职责——要做的事(方法) ;
2、OOD面向对象设计:根据职责确定不同的对象,在对象内部封装不同的方法(多个) ;
3、OOP面向对象编程:最后完成代码,就是顺序的让不同的对象调用不同的方法 。
例:


面向对象的思想有如下特点:
1、注重对象和职责,不同的对象承担不同的职责 ;
2、更加适合对复杂的需求变化,是专门应对复杂项目的开发,提供的固定套路;
3、需要在面向过程的基础上,再学习一些面向对象的语法。
面向对象技术简介
1、类(Class):用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例。
2、对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)以及方法。
3、类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外,类变量通常不作为实例变量使用。
4、实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
5、方法:类中定义的函数。
6、实例化:创建一个类的实例,类的具体对象。
封装
对于面向对象的封装来说,其实就是使用构造方法将内容封装到对象 中,然后通过对象直接或者self间接获取被封装的内容。
#定义一个名为Book的类
class Book:
def __init__(self,title,price,author):
self.title = title
self.price = price
self.author = author
#实例化
book1 = Book('python',29.9,'Tom')
#使用
print(book1.title)
print(book1.price)
print(book1.author)
#运行结果
python
29.9
Tom
类的参数可以设置默认值,若实例化时未赋值,则采用默认值。
#定义类
class Book:
def __init__(self,title,price = 0.0,author = None):
self.title = title
self.price = price
self.author = author
#实例化
book1 = Book('python')
#使用
print(book1.title)
print(book1.price)
print(book1.author)
#运行结果
python
0.0
None
类中也可以定义函数,称为方法。
#定义类
class Book:
def __init__(self,title,price,author):
self.title = title
self.price = price
self.author = author
def print_info(self):
print('这本书信息如下:')
print('标题:{}'.format(self.title))
print('定价:{}'.format(self.price))
print('作者:{}'.format(self.author))
#实例化
book1 = Book('python',29.9,'Tom')
#使用
book1.print_info()
#运行结果
这本书信息如下:
标题:python
定价:29.9
作者:Tom
如果直接打印实例化的对象,显示的是其在内存中的位置。
print(book1)
#运行结果
<__main__.Book object at 0x000001C4496B9208>
若想打印实例化的对象时显示想要的信息,可以通过__repr__()函数实现。
class Book:
def __init__(self,title,price = 0.0,author = None):
self.title = title
self.price = price
self.author = author
def __repr__(self):
return '<图书{}>'.format(self.title)
book1 = Book('python')
print(book1)
#运行结果
<图书python>
未完待续!
来源:CSDN
作者:yfqh9588
链接:https://blog.csdn.net/qq_43635468/article/details/104300588