PYTHON基础知识学习笔记(七)

五迷三道 提交于 2020-02-13 22:50:14

面向对象

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>

未完待续!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!