python--面向对象

写在之前

python是一门面向对象的语言,他不同与C语言,Java这些面向过程的语言。面向对象就是模拟人类认知世界的行为,进行分类处理的过程。

简而言之

就是要创建一个世界,创建一个类,创建一个对象。类是模板,对象就是模板拓出来一个真实的案例。

类是一些具有相同属性的事物的统称包括,基本的属性和动作,在python中把这些动作叫做方法。比如:人类,鱼类等

创建

class 类名():

class People(object):
    def __init__(self,name,age):#属性
        self.__name=str(name)
        self.__age=int(age)

    def GatAge(self):#方法
        return self.__age
 def __init__(self,name,age):

定义这类事物的基本属性

def GatAge(self):

定义这类事物的动作,即方法

对象

对象就是一类事物中具体的一个,比如人类中的张三。这个张三就是一个对象。

创建

对象名称 = 类名称() 构建对象

class People(object):
    def __init__(self,name,age):
        self.__name=str(name)
        self.__age=int(age)

    def GatAge(self):
        return self.__age

p=People("张三","18")
print(p.GatAge())

这段代码中p就是People类中的一个对象
p.GatAge()就是p的动作,打印他的年龄。

面向对象的三大特征

封装

封装是将类中的一些特别的属性进行加密,封装主要是对类中的某些属性进行私有化,禁止外界访问主要用双下滑线来进行封装。但是会提供公开的方法去访问。

1.使用getter和setter

class students(object):
    def __init__(self, name):
        self.__name = name

    def get_name(self,):
        return self.__name

    def set_name(self, name):
        self.__name = name

    def __str__(self):
        return self.__name


st1 = students('zhang')
print(st1.get_name())
st1.set_name('li')
print(st1.get_name())

python--面向对象_第1张图片
如果类中将某些属性私有化,当属性私有化之后,直接在外界访问或者赋值都无法成功,只有使用get方法才可以访问,使用set来修改。

2.使用property的全局函数

class students(object):
    def __init__(self, name):
        self.__name = name

    def get_name(self,):
        return self.__name

    def set_name(self, name):
        self.__name = name

    def __str__(self):
        return self.__name

    name = property(get_name, set_name)
st1 = students('zhang')
print(st1.name)
st1.name='li'
print(st1.name)

在这里插入图片描述
使用property()函数来引用,从而来代替getter和setter.

3.使用property装饰器完成封装

class students(object):
    def __init__(self, name):
        self.__name = name

    @property
    def name(self,):
        return self.__name

    @name.setter
    def name(self, name):
        self.__name = name

    def __str__(self):
        return self.__name

st1 = students('zhang')
print(st1.name)
st1.name='li'
print(st1.name)

在这里插入图片描述

继承

继承是指一个子类继承父类的公有属性和公有方法,子类的读取顺序是先从自己本类中查找,若是不存在就到父类中去查询。一个子类可以有多个不同的父类。

class student(object):
    def __init__(self, username, name,):
        self.username = username
        self.__name = name


    def say(self):
        print("我是父类")


class Granduate(student):
    def say(self):
        print("我是子类")

a=student("张三","丰")
b=Granduate('li','w')
a.say()
b.say()
print(b.username)

python--面向对象_第2张图片

多态

在继承的基础上,父类引用指向子类实例(对下个)的现象,叫做
父类可以调用子类方法!!!

在Python这些弱类型语音,天生支持多态

你可能感兴趣的:(python)