一,对象和类
Python是面向对象程序设计(Object Oriented Programming, OOP),其思想主要针对大型软件设计而提出。
其软件设计更加灵活,能够很好地支持代码复用和设计复用。
并且使得代码具有更好的可读性和可扩展性。
面向对象程序设计的思路:
比如生产一台计算机,不是按顺序生产每一个部件,而是分别生产各个部件,然后再将其组装起来,这些部件通过设计好的接口连接,以便协调工作。
现实生活的每个相对独立的事物都可以看作一个对象。如一个人,一辆车
对象是具有某些特性和功能的具体事物的抽象。都具有描述其特征的属性及附属于它的行为。如一辆车有颜色等属性,一个人有姓名等属性。
类
每个对象都有一个类,类是创建对象实例的模板,是对对象的抽象和概括。
它包含对所创建对象的属性描述和行为特征的定义。
定义
创建类时用变量形式表示的对象属性称为数据成员或属性(成员变量)。
用函数形式表示的对象行为称为成员函数(成员方法)。
成员属性和成员方法统称为类的成员。
class 类名:
属性(成员变量)
属性
...
成员函数(成员方法)
对象 = 属性(特征) + 方法(行为)
python中具有相同属性和方法的对象归为一个类(class)
类是对象的抽象化,对象是类的实例化。
对象的创建
对象名 = 类名()
所有类都有一个名为__init__()的函数,它始终在启动类时执行。
使用__init__()函数将值赋给对象属性。
对象也可以包含方法。对象中的方法属于该对象的函数。
实例 创建Person类
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def myfunc(self):
print('Hello my name is' + self.name)
p1 = Person('Bill',63)
p1.myfunc()
print(p1,name)
print(p1.age)
二,函数和方法
1,函数的分类
内置函数:python内嵌的一些函数
匿名函数:一行代码实现一个函数功能
递归函数:直接或间接调用函数本身的函数
自定义函数
2,方法分类
普通方法:直接用self调用的方法
私有方法:_函数名,只能在类中被调用的方法
属性方法:@property,将方法伪装成为属性,让代码看起来更合理
特殊方法(双下划线):用来封装实例化对象的属性,如__init__
类方法:通过类名的调用去操作公共模板中的属性和方法
静态方法:不用传入类空间、对象的方法。 可以完全独立类外的一个方法,但是为了代码的一致性统一的放到某个模块(py文件)中
函数作用域:
从函数调用开始至函数执行完成,返回给调用者后,在执行过程中开辟的空间会自动释放。
也就是说函数执行完成后,函数体内部通过赋值等方式修改变量的值不会保留,会随着返回给调用者后,开辟的空间会自动释放。
方法作用域:
通过实例化的对象进行方法的调用,调用后开辟的空间不会释放。也就是说调用方法中对变量的修改值会一直保留。
函数:通过“函数名()”的方式进行调用。
方法:通过“对象.方法名”的方式进行调用。
三,包,模块和库
包:
在模块之上的概念,为了方便管理而将文件进行打包。
包目录下第一个文件便是 __init__.py,然后是一些模块文件和子目录,假如子目录中也有 __init__.py,那么它就是这个包的子包
package_a
├── init.py
├── module_a1.py
└── module_a2.py
模块:
就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块。
库:
具有相关功能模块的集合。分为标准库、第三方库以及自定义模块
标准库:就是下载安装的python里那些自带的模块(python安装后自带的库)
第三方库:就是由其他的第三方机构,发布的具有特定功能的模块(python安装后需要下载安装的库)
自定义模块:用户自己可以自行编写模块,然后使用。