美食优秀设计网站,织梦移动端网站怎么做,如何推广引流,网站开发及技术1.面向对象(Object Oriented,OO)概念面向对象#xff0c;是我们编程的一种思维。早期的计算机编程是基于面向过程的方法#xff0c;例如实现算术运算112 4#xff0c;通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高#xff0c;计算机被用于解决越来越复…1.面向对象(Object Oriented,OO)概念面向对象是我们编程的一种思维。早期的计算机编程是基于面向过程的方法例如实现算术运算112 4通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高计算机被用于解决越来越复杂的问题。通过面向对象的方式将现实世界的事物抽象成对象现实世界中的关系抽象成类、继承。通过面向对象的方法更利于用人理解的方式对复杂系统进行分析、设计与编程。同时也提高了系统的可维护性可扩展性可重用性。(就是使编程的思维更接近与人的思维和认知)面向对象编程的关键就是类的定义。类是对现实生活中一类具有共同特征的事物的抽象。2.类的定义基本形式 class ClassName(object): Statement 1.class定义类的关键字2.ClassName类名类名的每个单词的首字母大写(驼峰规则)。3.object是父类名object是一切类的基类。在python3中如果继承类是基类可以省略不写。重点学会定义类了解属性和方法类的初始化和实例化。定义类时这种方法可以使类对象实例按某种特定的模式生产出来。#类方法后面的参数中第一个参数我们约定俗成的为self参数名self代表的是在类实例化后这个实例对象本身。初始化函数除了有self这个参数表示实例对象本身之外其他的参数的定义也遵循函数的必备参数和默认参数一样的原则必备参数就是在实例化是一定要传入的参数默认参数就是在定义时可以给这个参数一个初始值。没有函数名的函数3.类的实例化 基本形式实例对象名 类名(参数) 在实例化的过程中self代表的就是这个实例对象自己。 实例化时会把类名后面接的参数传进去赋值给实例 这样传进去的参数就成为了这个实例对象的属性。 实例化的过程遵循函数调用的原则。 在实例化时也必须个数和顺序与定义时相同(使用关键字参数可以改变传参的顺序)。 当初始化函数定义时使用了默认参数时在实例化时默认参数可以不传参这时 这个实例对象就会使用默认的属性如果传了参数进去则会改变这参数值 使实例化对象的属性就为你传进来的这个参数。 isinstance(实例名类名) 判断一个实例是不是这个类的实例。#类 类是对现实生活中具有共同特征的事物的抽象。class Animal(object): pass# object, 基类。 任何类都需要继承object# 类 (模子)class Animal: #python3 继承object可写可不写 passdog Animal() #生成一个实例 dogcat Animal() #生成实例cat##构造方法 __init__() , self 参数class Animal: def __init__(self): # 构造方法,实例化对象时必须要调用__init__ print(正在实例化一个类) def test(self): print(aaa)#当我们没有写__init__() ,默认调用我们父类__init__class Animal: def test(self): print(aaa)###self, 实例化对象(本身)#self 可以替换成别的参数名。但是最好别改class TestSelf: #方法 testSelf 方法的首字母小写 类: TestSelf 类的首字母一般大写 驼峰命名规则 def __init__(self): #在初始化的时候默认往构造方法传入一个值 print(正在实例化) def test(self): print(bbb) def test2(): print(ccc)4.类和实例的属性 类属性 .类属性是可以直接通过“类名.属性名”来访问和修改。 .类属性是这个类的所有实例对象所共有的属性 任意一个实例对象都可以访问并修改这个属性(私有隐藏除外)。 .对类属性的修改遵循基本数据类型的特性列表可以直接修改字符串不可以 所以当类属性是一个列表时通过任意一个实例对象对其进行修改。 但字符串类型的类属性不能通过实例对象对其进行修改。 当实例对不可变对象进行修改之后会查找实例的类属性不会查找类的属性同时类的属性不会边 实例属性 .在属性前面加了self标识的属性为实例的属性。 .在定义的时候用的self加属性名字的形式在查看实例的属性时 就是通过实例的名称‘.’属性名来访问实例属性。 一些说明 .一般方法第一个参数被命名为self,这仅仅是一个约定 self没有特殊含义程序员遵循这个约定。 .查看类中的属性和实例属性可以调用__dict__方法返回属性组成的字典。 .Python中属性的获取是按照从下到上的顺序来查找属性 .Python中的类和实例是两个完全独立的对象 .Python中的属性设置是针对对象本身进行的####属性 属性本质上就一个变量1.实例化属性2.类属性 (共有属性)# 1.实例化属性 , self.nameclass Animal: def __init__(self,name,food): #自己独有的就放到实例化里面 print(正在实例化) self.name name # 实例化属性每个实例可能不同但是都有 self.food food def get_name(self): print(self.name)#2.类属性 (共有属性)class Animal: eye 2 leg 4 #共有的 def __init__(self,name,food): print(正在实例化) self.name name self.food food def get_name(self): print(self.name)5.类的私有属性和方法 在Python中通过单下划线”_”来实现模块级别的私有化一般约定以单下划线”_”开头的变量、函数为模块私有的也就是说”from moduleName import *”将不会引入以单下划线”_”开头的变量、函数 对于Python中的类属性可以通过双下划线”__”来实现一定程度的私有化。 _”和” __”的使用 更多的是一种规范/约定不没有真正达到限制的目的 “_”以单下划线开头只能允许其本身与子类进行访问(起到一个保护的作用) “__”双下划线的表示的是私有类型的变量。这类属性在运行时属性名会加上单下划线和类名。 “__foo__”以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识如 __init__()在Python中通过单下划线”_”来实现模块级别的私有化一般约定以单下划线”_”开头的变量、函数为模块私有的也就是说”from moduleName import *”将不会引入以单下划线”_”开头的变量、函数import random #全部会导入 from random import* #_Set 不会倒入class Animal: _eye 2 __leg 4 #共有的 def __init__(self,name,food): print(正在实例化) self.name name self.food food def get_name(self): print(self.name)#_”和” __”的使用 更多的是一种规范/约定并没有真正达到限制的目的dog._eye 3#dog._Animal__leg ##__ 默认加一个类名用来警告# “__foo__”以双下划线开头和结尾的(__foo__)#代表python里特殊方法专用的标识如 __init__()6.数据封装在类里面数据属性和行为函数的形式封装起来访问时直接调用不需知道类里面具体的实现方法。 比如list.append7.继承用法 .在定义类时可以从已有的类继承 被继承的类称为基类(父类)新定义的类称为派生类(子类)。 .在类中找不到调用的属性时就搜索基类 如果基类是从别的类派生而来这个规则会递归的应用上去。 反过来不行。 .如果派生类中的属性与基类属性重名那么派生类的属性会覆盖掉基类的属性。 包括初始化函数。 .派生类在初始化函数中需要继承和修改初始化过程 使用’类名__init__(arg)’来实现继承和私有特性,也可以使用super()函数。 issubclass(类名1类名2) 判断类1是否继承了类2 作用 面向对象的编程带来的主要好处之一是代码的重用实现这种重用的方法之一是通过继承机制。 继承完全可以理解成类之间的类型和子类型关系。 子类在重写父类方法之后如果要继承父类方法中的功能要先调用父类的方法 class.fun(self)8.多态当派生类重写了基类的方法时就实现了多态性。(子类重写父类方法)## 面向对象 三个特征 封装 继承 多态# 封装class Animal: eye 2 leg 4 #共有的 def __init__(self,name,food): print(正在实例化) self.name name self.food food def get_name(self): print(self.name) def get_food(self): print(self.food)# 继承#面向对象的编程带来的主要好处之一是代码的重用class People(Animal): leg 2 def __init__(self,name,food,sex): self.name name self.food food self.sex sex def get_sex(self): print(self.sex) def speak(self): print(asdsdgfsagg) def eat(self): print(果子) #多态, (子类重写父类方法) ,继承。 (同一个方法有不同表形式)class Chinse(People): def speak(self): print(你好) def eat(self): print(米饭)class America(People): def speak(self): print(hello) def eat(self): print(面包) class Thai(People): def speak(self): print(萨瓦迪卡) def eat(self): print(香蕉)xiaoMing Chinse(小明,米饭,男)jeck America(jeck,面包,男)lala Thai(lala,香蕉,未知)总结1.类的定义2.__init__() 构造方法3.self 参数。 实例对象本身4.类属性 (共有属性) 实例化属性 5._ __ python 类的私有化。6. 面向对象 三大特征 封装 继承 多态“我自己是一名从事了多年开发的Python老程序员辞职目前在做自己的Python私人定制课程今年年初我花了一个月整理了一份最适合2019年学习的Python学习干货从最基础的到各种框架都有整理送给每一位喜欢Python小伙伴想要获取的可以转发文章并关注我的头条号。在后台私信我01即可免费获取。