电子商务网站建设实践课题背景,凡客诚品的配送方式,自适应网站模板下载,息壤网站打不开了面向对象最重要的概念就是类(class)和实例(instance)#xff0c;类是抽象#xff0c;而实例(Instance)则是一个个具体的对象面向对象三大特点#xff1a;封装、继承和多态class Animal(object):def __init__(self, name):self.name name # 初始化类变量def Dog(self): # 创…面向对象最重要的概念就是类(class)和实例(instance)类是抽象而实例(Instance)则是一个个具体的对象面向对象三大特点封装、继承和多态class Animal(object):def __init__(self, name):self.name name # 初始化类变量def Dog(self): # 创建类中的方法print(self.name)复制代码一、基本概念1.1 概念类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类变量类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员类变量或者实例变量, 用于处理类及其实例对象的相关的数据。方法重写如果从父类继承的方法不能满足子类的需求可以对其进行改写这个过程叫方法的覆盖(override)也称为方法的重写。局部变量定义在方法中的变量只作用于当前实例的类。实例变量在类的声明中属性是用变量来表示的。这种变量就称为实例变量是在类声明的内部但是在类的其他成员方法之外声明的。继承即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。实例化创建一个类的实例类的具体对象。方法类中定义的函数。对象通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。1.2 代码实例# -*- coding: utf-8 -*-1、全局变量在模块内、在所有函数外面、在class外面这就是全局变量。2、局部变量在函数内、在class的方法内(未加self修饰的) ,这就是局部变量3、静态变量在class内的但不在class的方法内的这就是静态变量4、实例变量在class的方法内的用self修饰的变量这就是实例变量Global_Variable 我是全局变量class ExampleClass(object):Class_static_variable 我是类静态变量 # 静态变量def __init__(self, Instance_Variable): # 构造函数,sel代表对象有Instance_Variable属性self.Instance_Variable Instance_Variable # 实例变量def study_example(self):Local_variable 我是一个局部变量 # 局部变量print(Local_variable) # 输出局部变量print(self.Instance_Variable) # 输出实例变量class ChlidExample(ExampleClass):def __init__(self, Instance_Variable, Chlid_Variable):ExampleClass.__init__(self, Instance_Variable) # 初始化父类实例变量self.Chlid_Variable Chlid_Variabledef test(self):print(学习 python的面向对象,了解变量是必须的我是孩子变量 {}我是继承变量{}.format(self.Chlid_Variable, self.Instance_Variable))Instance_Variable 我是用来测试实例变量的Chlid_Variable 我是用来测试局部变量的 study ChlidExample(Instance_Variable, Chlid_Variable) # 调用子类对象study.study_example() # 子类调用父类方法study_child ChlidExample(Instance_Variable, Chlid_Variable) # 调用子类对象study_child.test() # 子类调用子类方法复制代码二、面向对象三大特性解析2.1 封装封装顾名思义就是将内容封装到某个地方以后再去调用被封装在某处的内容。所以在使用面向对象的封装特性时需要将内容封装到某处从某处调用被封装的内容class Animal(object):def __init__(self, name): # 初始化方法self.name name # 初始化类变量def Dog(self): # 创建类中的方法print(self.name)def Cat(self): # 创建类中的方法print(self.name)info Animal(dahuang) # 封装到对象 infoprint(info.name) # 直接调用info.Dog() # self 间接调用复制代码2.2 继承继承面向对象中的继承和现实生活中的继承相同即子可以继承父的内容。对于面向对象的继承来说其实就是将多个类共有的方法提取到父类中子类仅需继承父类而不必一一实现每个方法。class Animal(object):def __init__(self, name): # 初始化方法self.name name # 初始化类变量def eat(self): # 创建类中的方法print(%s吃 %self.name)def drink(self): # 创建类中的方法print(%s喝%self.name)class Dog(Animal): # 继承Animal的 Dogdef __init__(self, name):self.name name #def cry(self):print(汪汪叫)class Cat(Animal): # 继承Animal的 Catdef __init__(self, name):self.name name #def cry(self):print(喵喵叫)child Dog(邻居家的猫) # 封装到子类对象 infochild.drink() # 子类调用父类的方法复制代码2.3 多态多态字面理解为多种形态没错就是一个方法能表现出不同的形态。同一操作(方法)作用于不同的对象可以有不同的解释产生不同的结果而无须明确知道这个子类实际上是什么。将其上升到父类与子类的层面时就是父类的引用指向了子类的对象。前面所讲的封装和继承都是为多态服务的然而 Python属于鸭子类型大意是当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子那么这只鸟就可以被称为鸭子。python中的鸭子类型允许我们使用任何提供所需方法的对象而不需要迫使它成为一个子类。多态三大前提要有继承重写父类引用指向子类对象。class Animal(object):def __init__(self, name): # 初始化方法self.name name # 初始化类变量class Dog(Animal): # 继承Animal的 Dogdef __init__(self, name):self.name name #def cry(self):print(%s汪汪叫 % self.name)class Cat(Animal): # 继承Animal的 Catdef __init__(self, name):self.name namedef cry(self):print(%s喵喵叫 % self.name)def DuoTai(child):print(child.cry())child1 Dog(邻居家的狗) # 封装到子类对象 infoDuoTai(child1) # 多态展示Cry方法重写child2 Cat(邻居家的猫) # 封装到子类对象 infoDuoTai(child2) # 多态展示Cry方法 重写复制代码三、进阶3.1 基础重载方法3.2 下划线说明foo:定义的是特殊方法一般是系统定义名字 类似 init() 之类的。_foo:以单下划线开头的表示的是 protected 类型的变量即保护类型只能允许其本身与子类进行访问不能用于 from module import *_ _ foo:双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。