关键词:
一、三大编程范式
python是一门面向对象的编程语言。
不同的编程样式有不同的风格,不同的风格有他不同的牛逼之处。
三大编程范式:
- 面向过程编程
- 函数式编程
- 面向对象编程
二、面向对象设计与面向对象编程
面向对象设计(Object oriented design):将一类具体事物数据和动作整合到一起,即面向对象设计
面向对象设计(OOD)不会不会特别要求面向对象语言,事实上,OOD可以由纯结构化语言来实现,比如C,但是如果想要结构具备对象性质和特点的数据结构,就要在程序上多做努力。
1 def Dog(name, gender): 2 def ini(name, gender): 3 dog1 = 4 "name": name, 5 "gender": gender, 6 "jiao": jiao, 7 "chi": chi, 8 9 return dog1 10 def jiao(dog): 11 print("一条狗 【%s】,汪汪汪"%dog["name"]) 12 def chi(dog): 13 print("一条狗 【%s】 正在吃东西"%dog["name"]) 14 dog1 = ini(name, gender) 15 return dog1 16 17 if __name__ == "__main__": 18 d1 = Dog("狗1",5) 19 print(d1) 20 d1["jiao"](d1)
面向对象编程(Object-oriented programing):用定义类+实例/对象的方法去实现面向对象的设计
1 class Dog: 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 5 def jiao(self): 6 print("一条狗 【%s】,汪汪汪" % self.name) 7 def chi(self): 8 print("一条狗 【%s】 正在吃东西"%self.name) 9 if __name__ == "__main__": 10 d1 = Dog("狗1", 3) 11 print(d1) 12 d1.chi()
四、小结
一门面向对象的语言不一定强制你写OO方式的程序,例如 C++可以认为是更好的C;而JACA则要求万物皆类
在Python中,类和OOP都不是日常编程所必须的,尽管它从一开始就设计是面向对象的。
用面向对象语言编写程序,和一个程序是面向对象设计的,两者八竿子打不着,是两码事。
五、类和对象
1.什么是类:类是一种数据结构,就好比一个模型,该模型用来表述一类事物。
2.什么是对象:你看到的每一个事物都是一个对象,可以理解对象就是一个具体的事物。
3.类与对象的关系:对象是由类产生的,类是对象的模板。
4.什么是实例化:由类产生对象的过程叫实例化,类实例化的结果就是一个对象,或者叫实例。
5.1 类的相关知识
类的声明:
1 ‘‘‘ 2 class 类名: 3 ‘类的文档字符串‘ 4 类体 5 ‘‘‘
# 创建一个类
class Data:
pass
# 用类实例化一个对象
d1 = Data()
金典类和新式类:
大前提: 1.只有在python2中才有新式类和金典类,python3中都是新式类 2.新式类和金典类的最大区别在于,所有新式类继承至少一个父类 3.所有类不管是否声明父类,都默认继承object父类。 在python2中: 金典类: class 类名: pass 新式类: class 类名(父类): pass python3中,上面连种定义都是新式类。
类的属性:
- 数据属性
- 函数属性
注意:类和对象都用 点 类访问自己的属性
class Dog: def __init__(self, name, gender): self.name = name self.gender = gender def jiao(self): print("一条狗 ,汪汪汪" ) def chi(self): print("一条狗 正在吃东西") if __name__ == "__main__": Dog.jiao(123) print(Dog.__dict__) # 结果是一个字典,包含类的所有属性 print(dir(Dog)) # 结果是一个列表,包含类的所有属性名
5.2 对象的相关知识
对象是由类实例化得来的。
实例化:
class Dog: def __init__(self, name, gender): self.name = name self.gender = gender def jiao(self): print("一条狗 【%s】,汪汪汪" % self.name) def chi(self): print("一条狗 【%s】 正在吃东西" % self.name) if __name__ == "__main__": d1 = Dog("狗1", 3) # 类名加上括号就是实例化 d1 就是一个实例
5.3 类属性和对象(实例)属性
class Dog: master = "xioahong" def __init__(self, name, gender): self.name = name self.gender = gender def jiao(self): print("一条狗 【%s】,汪汪汪" % self.name) def chi(self): print("一条狗 【%s】 正在吃东西" % self.name) if __name__ == "__main__": # ==================================类属性的增删改查 # 查看类属性 print(Dog.master) # 修改类属性 Dog.master = "xiaoming" print(Dog.master) # 删除类属性 del Dog.master # 增加类属性 print(Dog.__dict__) Dog.master = "me" Dog.home = "myhome" print(Dog.__dict__) # =================================实例属性的增删改查 d1 = Dog("Dog1",5) # 查看 print(d1.__dict__) # 增加 d1.mather = "小花" print(d1.__dict__) # 不要通过修改底层字典的字典属性 # d1.__dict__["father"] = "小草" # print(d1.__dict__) # 改 d1.name = "Dog2" print(d1.name) # 删除 del d1.name print(d1.__dict__)
实例查找属性也是按照区域查找,先找实例自己的,然后才是类的。
python之面向对象(代码片段)
首先我们应该知道,python在设计之初就已经是一门面向对象的语言,所以说python中创建一个类和对象是很容易的。面向对象的技术简介类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有... 查看详情
学习python之面向对象(代码片段)
学习Python之面向对象python面向对象1.类的定义2.类的实例化3.调用类中的实例方法4.使用实例变量5.类与对象6.类的构造函数7.类变量与实例变量(1).理解类变量与实例变量(2).类变量和实例变量的查找顺序无继承单继承多继承(3).`__... 查看详情
python之面向对象(代码片段)
father类classfather(object):def__init__(self,name,age):self.__privateFatherAge=age;self.publicFatherName=name;#定义共有属性name和私有属性__privateFatherAge=44;publicFatherName='feige';#私有方法访问共有属性def__priv 查看详情
python基础之面向对象基本概念(代码片段)
面向过程和面向对象概念过程和函数:过程类似于函数,只能执行,但是没有返回结果;函数不仅能执行,还能返回结果。面向过程和面向对象基本概念面向过程-怎么做把完成某一个需求的所有步骤从头到尾逐步实现;根据开... 查看详情
python面向对象之多态(代码片段)
多态第一阶段:判断一个变量是否是某个类型可以用isinstance()判断classAnimal(object):defrun(self):print("Animalisrunning")classDog(Animal):defrun(self):print("Dogisrunning")classCat(Animal):defrun(self):print 查看详情
python3之面向对象编程理解(代码片段)
...义类语classAnimal():class为定义类的关键字,后面跟名字():python命名规范建议:类一般首字母单词大写,属性变量,函数首单词字母小写定义一个类叫Animal,相关代码:classAnimal():##类里定义的属性称为类属性count=0##构造函数,实例化的时... 查看详情
python学习笔记之面向对象(代码片段)
一、面向过程VS面向对象 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路... 查看详情
python基础之面向对象2(封装)(代码片段)
一、封装定义: 二、作用 三、私有成员: 1、基本概念及作用 2、__slots__手段私有成员: 3、@property属性手段私有成员: 四、基础示例代码 1、用方法封装变量 """... 查看详情
python数据结构之面向对象(代码片段)
💫在python数据结构的上一章节我们讲述了python的输入输出、控制、异常,希望大家重点掌握输出和控制,这些都是比较简单的啦,多看看就好了,对以前课程感兴趣的小伙伴可以看这里👇:python数据类型:py... 查看详情
进阶学python:python面向对象系列之魔法方法!(代码片段)
本篇主要介绍面向对象编程中类的魔法属性,这些魔法属性均有其特殊的功能,即执行某些操作时,会自动触发这些魔法方法的执行,了解这些魔法方法可以更好的了解面向对象编程的实现原理;在学习魔法... 查看详情
python面向对象之单例模式(代码片段)
...是相同的;__new__方法__new__作用使用类名()创建对象时,python解释器首先会调用__new_ 查看详情
python--面向对象之三个特性:封装继承多态(代码片段)
...法 obj=类名() obj.方法名3、self,形参,python内部传递 4、函数式编程与面向对象式编程的区别示例:#!/usr/bin/envpython#-*-coding:utf-8-*-"""面向对象编程初识"""#先定义一个类classHello():#定义一个方法defsayHell(self,name):pri... 查看详情
进阶学python:python面向对象之属性方法(代码片段)
这次我们主要介绍类中定义的各种属性,例如类属性、实例属性、类的私有属性,以及各种方法,例如实例方法、类方法、静态方法以及property属性方法等相关知识。🚀看一段代码classTool(object):dog_type="Huskie&... 查看详情
python面向对象之文件操作(代码片段)
...以用文本编辑软件查看;本质上还是二进制文件;例如:python源文件。二进制文件保存的文件不是直接给人阅读的,而是提供给其他软件使用 查看详情
python之面向对象知识点汇总(小白必会)(代码片段)
目录Python基础之面向对象一、编程思想1、面向过程2、面向对象二、类与对象的创建1、类的语法结构2、定义与调用3、给对象添加独有属性4、对象独有属性修改三、动态、静态方法1、直接在类中定义的函数2、绑定给类的函数3、... 查看详情
面向对象之继承(代码片段)
...种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类。子类会“”遗传”父类的属性,从而解决代码重用问题(比如练习7中Garen与Riven类有很多冗余... 查看详情
最新python大数据之python基础学生管理系统面向对象版(代码片段)
文章目录1、在子类中调用父类方法2、多态3、类属性4、类方法5、静态方法6、面向对象案例7、异常捕获8、捕获指定类型的异常9、else和finally10、自定义异常抛出11、模块的导入12、自定义模块13、模块查询顺序14、`__all__`的... 查看详情
面向对象之继承与派生(代码片段)
继承:单继承/多继承python2与python3在继承上的区别: 新式类:但凡继承object类的子类,以及该子类的子子类,...都称之为新式类 经典类:没有继承object类的子类,以及该子类的子子类,...都称之为经典类只有在python2中才区分新式类... 查看详情