当前位置:首页 > IT技术 > 编程语言 > 正文

Python类和对象、模块
2022-03-06 18:00:19

对象的理解

Python类和对象、模块_封装

Python类和对象、模块_父类_02

对象的特征

Python类和对象、模块_父类_03

封装

信息隐蔽技术,例如BIF功能List我们可以执行append、sort等,但是我们不知道里面实现的逻辑,这叫做封装

继承

子类自动共享父类之间数据和方法的机制,如果子类中定义父类同名的方法或属性,则会自动覆盖父类对应的方法或属性

class A(list):
pass
B = A() #
B.append(1);B.append(2);B.append(3)
print(B)
打印结果:
[1, 2, 3] #B继承了A列表对应的内部函数功能

class B(A) #A是父类,意味class B继承了父类功能
pass

多态

调用同样的函数名,实现不一样的功能

class A:
def fun(self):
print('我是小A')
class B:
def fun(self):
print('我是小B')
a = A();b = B()
print(a.fun(),b.fun())
打印结果:
我是小A
我是小B

面向对象

  1. OOA面向对象分析
  2. OOD面向对象设计
  3. OOP面向对象编程

面向对象有两个重要概念,类(class)和实例(instance),类是抽象的模板,实例是根据类创建出来的一个个具体的“对象”

Python类和对象、模块_父类_04

Python严格要求方法需要有实例才能被调用,这种限制其实就是Python所谓的绑定概念。

创建类
class Myclass(object): #pythong公约,类的第一个字母大写
pass
创建实例A
A = Myclass()

创建实例的时候,把我们认为必须绑定的属性强制填写进去,self、__init__ ,例如在Student类时,把name、score等属性绑上去

class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score


模块的理解

  • 容器:对数据的封装,例如列表、元组、字符串、字典等
  • 函数:对语句的封装
  • 类:对方法和属性的封装,就是对函数和容器的封装
  • 模块:每个保存的.py都是一个独立的模块,也就是程序

模块的引入

模块的作用将大的程序拆成小分支,易于测试和阅读;一段好的模块作为中间件反复被利用

引入方式:
第一种:import 模块名
第二种:from 模块名 import 函数名 #这个方法引用模块函数等不需要再加模块前缀
第三种:import 模块名 as 新名字 #别名的方式可能在命名空间上最合适

模块的路径

def__init__方法是Python类中的一个无法绕开的方法。它相当于面向对象方法中的 C++ 构造函数
当你创建一个类的新对象时,Python 会自动将你的参数传递给 __init__方法并调用它来初始化对象的属性
__init__方法让类初始化对象的属性,没有其他作用,它只在类中使用


if __name__ == ‘__main__’ #测试使用,这是主函数
一个python文件通常有两种使用方法,
第一是作为脚本直接执行
第二是 import 到其他的 python 脚本中被调用(模块重用)执行
因此 if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程
if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的

搜索路径 #import sys命令用于查询模块默认可导入的路径,它是一个列表,因此可以通过sys.path.append导入指定模块路径

包(package)
1、创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字;
2、在文件夹中创建一个__init__.py的模块文件,内容可以为空;
3、将相关的模块放入文件夹中

Python类和对象、模块_父类_05

本文摘自 :https://blog.51cto.com/l