内容回顾
- 面向对象之类与对象
- 对象独有的数据功能(属性,方法)
- 编程思想
- 动静态方法
- 继承的概念/本质
- 名字查找顺序
- 经典类与新式类
- 派生方法
1.类与对象
面向对象编程的主题是围绕着 数据与功能的结合体
# 对象>>>>数据与功能的结合体
# 类>>>>>有相同功能与属性的对象的结合体
类的主要作用是为了节省代码
类与对象的创建语法:
类的创建:
class 类名:
'''类体注释'''
对象公共的数据
对象公共的功能
类体代码
对象的创建:
变量名 = 类名()
2.对象独有的数据功能(属性,方法)
对象独有数据属性可以在类中调用 def __init__():
在__init__方法内传值即可
我们在创建对象的时候在类加括号中传递 init 所需的参数
并通过self.变量名 = 形参 传值
即可给对象添加他的属性
独有方法即,对象调用了类中的公共方法,
谁调用的那么这个方法就是谁独有的
调用方法都会把对象本身传递进去(seLf)
3.编程思想
1.面向过程编程:
过程即流程,我们对问题进行解析分析每一步需要做什么,一步一步去完成目标,每一步都有固定的流程,
每一次都离最终结果更进一步
2.面向对象编程:
面对对象编程就好像我们成为了造物主,我们只负责创造对象,对象之后怎么样不是我们考虑的范畴
4.动静态方法
1.
动态方法就是可以动态传值,
我们通过对象掉类中的公共方法的时候,会自动将对象本身当作第一个参数传递进去
我们在公共方法上面加上 @classmethod 这个装饰器
那么我们在使用类名调用公共方法的时候,也会默认把类本身当作第一个参数传递进去
2.
静态方法就好像在类中建立一个独立的函数,他不会被传值
我们只需要在 公共方法上面加上 @staticmethod 这个装饰器
我们在调用的时候 不管是类还是对象去调用都不会自动传参数
5.继承的本质与概念
1.继承的本质就是节省代码
继承就相当于儿子继承了父亲的财产
父亲有多少钱
儿子就能继承多少钱
并且父亲有的物件
儿子也能用
6.名字的查找顺序
对象本身>>>>产生对象的类>>>>> 类的父类>>>>>object
菱形继承: 广度优先 ,最后找顶点
非菱形继承: 深度优先 一直找到底
7.经典类与新式类
在python2 中 有经典类的概念
class 类名(object)
经典类就是不继承object的类或着继承其子类的类
新式类就是继承了object的类或着继承了其子类的类
8.派生方法
派生方法就是子类基于父类某个方法做了扩展
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
class Student(Person):
def __init__(self, name, age, gender, sid):
super().__init__(name, age, gender) # 子类调用父类的方法
# super(父类,self)
self.sid = sid
class Teacher(Person):
def __init__(self, name, age, gender, level):
super().__init__(name, age, gender)
self.level = level
stu1 = Student('jason', 18, 'male', 666)
print(stu1.__dict__)
标签:总结,__,name,对象,11.6,init,方法,self
From: https://www.cnblogs.com/ddsuifeng/p/16862523.html