python面向对象笔记-自我总结
2021/4/29 22:55:51
本文主要是介绍python面向对象笔记-自我总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
面向对象
三大特性
- 封装
- 继承
- 多态
封装
将数据、变量、函数封装到一个类中的过程就是类的封装。但也不是什么都要封装进类,类也有其独特的属性,
而不是什么数据、什么变量、什么函数都往里面塞;
- 动物属于一个类别,如果它实例成一个对象,那么这个对象就是某一个动物本身具体;所以我们定义类的时候, 就需要考虑到动物本身所具有的属性,而非将一些人独有的属性和一些人独有的动作方法添加进入动物的类中。
class Animal: def bark(self): print("独有的叫声") def chi(self): print("吃") def he(self): print("喝") def la(self): print("拉") def sa(self): print("撒") def sleep(self): print("睡")
class People: def say(self): print("独有的说话交流能力") def chi(self): print("吃") def he(self): print("喝") def la(self): print("拉") def sa(self): print("撒") def sleep(self): print("睡")
- 封装可以将一些可复用的方法进行统一调用
import hashlib # md5加密一个字符串 hashlib_obj = hashlib.md5() hashlib_obj.update("123456") result = hashlib_obj.hexdigest()
上面是单独写在一个模块里,自上而下的就会自动的去执行
# 使用函数 import hashlib def md5(origin): hashlib_obj = hashlib.md5() hashlib_obj.update(origin) result = hashlib_obj.hexdigest() return result
上面是写在一个模块里的函数里,加入别的地方也要进行使用,便进行导入该模块; 但是如果此模块写了各种各样的处理各种事情的函数时,不能够清晰的知道需要导入这个模块里的哪个函数;
如果我们定义一个字符串处理类,专门用于处理字符串异类的操作的。是不是以后有字符串相关操作的,都可以 到这里面来找;而且方向很明确,而不是在一个模块里存在各种各样的去找。
import hashlib class StrUtil: @staticmethod def md5(origin): hashlib_obj = hashlib.md5() hashlib_obj.update(origin) result = hashlib_obj.hexdigest() return result
封装的主要体现在实例化函数后的一系列操作
class Student: def __init__(self, name, age): self.name = name self.age = age stu = Student("学生1", 18)
__init__
初始化函数,会在类进行实例化时自动执行;但是这并不是python中的构造函数,执行 __init__
方法,默认会将创建的那个块区域的内存地址当self参数传递进去
__new__(cls, *args, **kwargs)
这个才是python的构造函数
__getattr__
获取类中的属性,快捷方法有getattr()
__setattr__
设置类中的属性,快捷方法有setattr()
self
,类中的方法需要由这个类的对象来触发执行(对象.方法名),且在执行时会自动将对象当做参数传递给self
, 以供方法获取对象中已封装的值。
除了self默认参数外,其他都与函数的定义和执行时一样的
封装的总结
- 将同一类的方法封装到一个类中
- 将数据封装到了对象中,在实例化一个对象时,可以通过
__init__
初始化方法在对象中封装一些数据,便于以后调用。
这篇关于python面向对象笔记-自我总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识