1.初识面向对象
class Person: #定义一个人类
role = 'person' #人的角色属性都是人
def __init__(self,name):
self.name = name # 每一个角色都有自己的昵称;
def walk(self): #人都可以走路,也就是有一个走路方法
print("person is walking...")
print(Person.role) #查看人的role属性
print(Person.walk) #引用人的走路方法,注意,这里不是在调用
实例化的过程就是类——>对象的过程
语法:对象名 = 类名(参数)
2.创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性
而类有两种属性:静态属性和动态属性
静态属性就是直接在类中定义的变量
动态属性就是定义在类中的方法
创建一个对象/实例就会创建一个对象/实例的名称空间,存放对象/实例的名字,称为对象/实例的属性
3.面向对象的三大特性:继承,多态,封装
Python的类如果继承了多个类,那么其寻找方法的方式有两种,分别是:深度优先和广度优先
封装:封装属性方法
抽象类,接口类.
抽象类就是一种规范.
from abc import ABCMeta,abstractmethod
class Payment(metaclass=ABCMeta): # 抽象类 接口类 规范和约束 metaclass指定的是一个元类
@abstractmethod
def pay(self):pass # 抽象方法
class QQpay(Payment):
def pay(self):pass
class Wechat(Payment):
def pay(self):pass
多态,鸭子类型.
面向对象三大特性: 封装,继承,多态.
只不过python默认支持多态.
但是python支持鸭子类型.
封装:
将一些信息放置到一个空间中.
私有成员: 私有静态字段,私有属性,私有方法.
公有的 python
私有的 python
被保护的 python没有
class A:
__name = 'alex'
def __init__(self,age):
self.__age = age
def __func(self):
pass
对于私有成员来说:类外访问不到,类内部可以访问,派生类不可访问.