什么是python面向对象

提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation)。Python也是一种支持OOP的动态语言,本文将简单阐述Python对面向对象的支持。

在讨论Python的OOP之前,先看几个OOP术语的定义:

类:对具有相同属性和方法的一组对象的描述或定义。

对象:对象是一个类的实例。

实例(instance):一个对象的实例化实现。

标识(identity):每个对象的实例都需要一个可以唯一标识这个实例的标记。

实例属性(instance attribute):一个对象就是一组属性的集合。

实例方法(instance method):所有存取或者更新对象某个实例一条或者多条属性的函数的集合。

类属性(classattribute):属于一个类中所有对象的属性,不会只在某个实例上发生变化

类方法(classmethod):那些无须特定的对性实例就能够工作的从属于类的函数。

封装

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。 

对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。

class Foo:
    def __init__(self, name, age ,gender):
        self.name = name
        self.age = age
        self.gender = gender
    def eat(self):
        print "%s,%s岁,%s,吃奶" %(self.name, self.age, self.gender)
    def he(self):
        print "%s,%s岁,%s,喝水" %(self.name, self.age, self.gender)
    def shui(self):
        print "%s,%s岁,%s,睡觉" %(self.name, self.age, self.gender)
a = Foo('jack', 10, '男')
a.eat()
a.he()
a.shui()
b = Foo('rose', 11, '女')
b.eat()
b.he()
b.shui()

来源:PY学习网:原文地址:https://www.py.cn/article.html