Python_面向对象
Posted Joy_Sir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_面向对象相关的知识,希望对你有一定的参考价值。
一.面向对象技术简介
- 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 方法:类中定义的函数。
- 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
- 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
- 局部变量:定义在方法中的变量,只作用于当前实例的类。
- 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
- 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
- 实例化:创建一个类的实例,类的具体对象。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。
Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。
对象可以包含任意数量和类型的数据。
注意:
类的名称,首字母最好使用大写字母
类的基本作用:封装
类的内部不能调用,和使用方法
二.创建一个类
代码段
class Student(): name = ‘‘ age = 0 def print_file(self): print(‘name:‘ + self.name) # 调用类里面的方法,参数需要加上self print(‘age:‘ + str(self.age)) student = Student() # 实例化 student.print_file() # 调用类里面的方法
输出结果
name: age:0
三.调用类
在另一个模块下调用类
代码段
from createObject import Student # 调用类 student = Student() student.print_file()
输出结果
name: age:0 name: age:0
四.构造函数
常识
# 类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起
# 类相当于模板,里面可以有很多不同的对象
# python魔法方法:__init__( )方法,被称为构造方法。__init__()方法的魔力体现在只要实例化一个对象,这个方法就会在对象被创建时自动调用。实例化对象时是可以传入参数的,这些参数会自动传入__init__()方法中,可以通过重写这个方法来自定义对象的初始化操作。
1.一个类里面,可存在多个对象
代码段
class Student(): name = ‘‘ age = 0 def do_homework(self): print(‘homework‘) student1 = Student() student2 = Student() student3 = Student() # 打印内存地址 print(id(student1)) print(id(student2)) # 查看内存地址 print(id(student3))
输出结果:虽然输出结果是一样,但是内存地址不一样
1528568316032 1528568316256 1528568317936
2.使用构造函数,定义不同的对象
代码段
class Student(): name = ‘‘ age = 0 def __init__(self,name,age): # __init__构造函数 print("student") return None # 增加return也只能返回None,否则为报错 # 行为 与 特征 def do_homework(self): print(‘homework‘)
student1 = Student(‘joy‘,18) # 如果不使用构造函数__init__,括号中传入实参就会报错
输出结果:
student
注意:
函数中不加return,返回结果为None
代码段
class Student(): name = ‘‘ age = 0 def __init__(self): # __init__构造函数 print("student") student1 = Student() a = student1.__init__() # 没有return,返回结果为 None
print(a)
输出结果
student # 加了构造函数,python会自己调用构造函数 student
None
构造函数,增加return,也只能返回None,否则会报错
以上是关于Python_面向对象的主要内容,如果未能解决你的问题,请参考以下文章