Python3面向对象编程总结

自学笔记:逻辑可能比较混乱,想到哪说到哪,可能存在不少的问题欢迎指出。

创建一个类:

最简单的一个类

在python中类的命名必须以字母或者下画线开头,并且只能包含字母、下画线和数字。另外推荐使用驼峰命名方式(大写字母开头,随后的任意一个单词都以大写字母开头)
python最简单的一个类的创建
class MyFirstClass:
	pass

类的属性和方法

在类中我们还可以为其添加属性和方法
class MyFirstClass:
    def __init__(self):
        self.x = 1
        self.y = 1

    def show(self):
        print(self.x,self.y)

c = MyFirstClass()
c.show()
其中self.x和self.y为该类的属性,show()为该类的方法
类中的方法的定义方式和普通函数相同,都是以关键字def开头,但是有一点不同的是类中的方法有一个必需的参数,通常这个参数被命名为self,但是我们实例化类后调用show方法的时候并没有传入参数,这是因为python自动帮我们做了,当我们调用c对象的show方法的时候,python会自动将c对象传给show方法了。因此下面这个调用方式运行结果是一样的。
c = MyFirstClass()
MyFirstClass.show(c)
其实类中的方法本质上就是一个函数,我们可以在外部调用也可以在类中调用,例如:
class Point:
    def __init__(self, x ,y ):
        self.x = x
        self.y = y

    def reset(self):
        self.x = 0
        self.y = 0
        self.show()

    def show(self):
        print(self.x, self.y)

p = Point(1,1)
p.reset()
运行结果为:0  0

类的初始化

一般的编程语言中都有一个叫构造函数的特殊方法,当它被创建的时候会创建和初始化对象,这一点Python会有些许不同,python有一个构造函数和一个初始化函数,一般情况下构造函数很少被用到,除非是想实现一些特别的操作,所以在此主要说一下类的初始化。我们在之前的示例中有一个方法名为__init__(),其实这个方法就是给类进行初始化操作的。当我们实例化的时候会首先执行__init__()方法,因此当__init__()方法需要传递参数的时候我们在实例化的时候同样需要传递参数,不然会报错。
由于方法本质上就是函数,当我们不想传递参数的时候也可以同函数的操作一样使用默认参数。
def __init__(self, x=0, y=0):
    self.x = x
    self.y = y

面向对象三个基本特征

面向对象编程的三个基本特征分别为:封装、继承、多态,下面一一说明。

继承

继承就是让一个类获得另一个类的属性和方法,在Python中所有的类都是object类的子类,只是在实际的使用中我们并不需要表明,python在后台自己帮我们做了




猜你喜欢

转载自blog.csdn.net/fanmlei/article/details/79982750