Python零基础学习笔记(四十一)—— 面向对象编程思想

简介: 面向对象三大特点:              封装、继承、多态 封装:        在python中,封装就是将有相同属性和功能的事物归纳好之后放在同一个类(class)中        优点:简化代码、便于日后修改和维护 下面定义一个人类作为例子:        里面包含了对象的初始化(构造函.

面向对象三大特点

             封装、继承、多态

封装

       在python中,封装就是将有相同属性和功能的事物归纳好之后放在同一个类(class)中

       优点:简化代码、便于日后修改和维护

下面定义一个人类作为例子:

       里面包含了对象的初始化(构造函数),变量的访问限制(共有变量和私有变量)

class Person(object):

    def __init__(self, name, age, money, height):
        self.__name__ = name        #特殊变量,可以直接访问
        self.age = age              #普通变量
        self.__money = money        #私有变量,不能直接访问
        self._height = height       #可以直接访问,但是请视为私有变量,尽量不要直接访问

    def show(self):
        print("My name is %s, I am %d years old. I have %d $$."%(self.__name__, self.age, self.__money))

    def setMoney(self, money):
        if money < 0:
            pass
        else:
            self.__money = money

    def getMoney(self):
        return self.money

per = Person("Jjking", 23, 50, 60)
per.show()

per.money = 200
per.age = 24
per.show()

per.__money = 200
print(per.__money)

per.setMoney(200)
per.show()

print(per.getMoney())

#动态数据语言的体现,在执行过程中可以添加属性
per.a = 34
print(per.a)

执行结果:

74f236d980552123530920b6fa87972d3a8db705
继承:

       子类继承父类的属性,父类有的功能和属性(私有除外),子类都可以用

下面是例子:

      因为父类是Animal类,定义了eat的行为,子类是Cat类继承了Animal的eat的行为,所以在创建一个cat的对象的时候,这个对象就直接有了cat的行为,因此执行结果就是小白eat

class Animal(object):
    def __init__(self, namne):
        self.name = namne

    def eat(self):
        print(self.name + "eat")

class Cat(Animal):

    def __init__(self, name):
        Animal.__init__(self, name)

cat = Cat("小白")
cat.eat()

#执行结果
小白eat
多态:

       用一个例子来理解一下多态,就是有继承,有函数重写,父类引用指向子类对象

#人类
class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
    def whoAmI(self):
        return 'I am a Person, my name is %s' % self.name
#学生类
class Student(Person):
    def __init__(self, name, gender, score):
        super(Student, self).__init__(name, gender)
        self.score = score
    def whoAmI(self):
        return 'I am a Student, my name is %s' % self.name
#老师类
class Teacher(Person):
    def __init__(self, name, gender, course):
        super(Teacher, self).__init__(name, gender)
        self.course = course
    def whoAmI(self):
        return 'I am a Teacher, my name is %s' % self.name

def who_am_i(x):
    print(x.whoAmI())
p = Person('Tim', 'Male')
s = Student('Bob', 'Male', 88)
t = Teacher('Alice', 'Female', 'English')
who_am_i(p)
who_am_i(s)
who_am_i(t)

相关文章
|
24天前
|
存储 C语言 Python
【Python】学习笔记day3
【Python】学习笔记day3
27 1
|
1月前
|
Python
Python中的面向对象编程与继承
本文将深入探讨Python中面向对象编程的核心概念,重点讨论继承的实现原理以及在实际开发中的应用。通过详细的示例和解释,读者将能够全面理解Python中继承的使用方式和优势,为提高代码的复用性和可维护性提供有效的技术支持。
|
6天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
16天前
|
Python
Python面向对象编程学习应用案例详解
面向对象编程在Python中通过类定义对象结构和行为。示例:1) 使用`class`关键字定义类,如`class Person`;2) `__init__`方法初始化对象属性,如`self.name`和`self.age`;3) 实例化对象,如`person1 = Person(&quot;张三&quot;, 25)`;4) 访问属性和方法,如`person1.name`;5) 定义类方法,如`def introduce(self)`;6) 调用方法,如`person1.introduce()`;7) 类继承,如`class Student(Person)`;8) 多态,通过继承重写方法实现。
9 1
|
24天前
|
存储 C语言 芯片
【Python】学习笔记day1
【Python】学习笔记day1
33 1
|
29天前
|
Python
Python面向对象编程简介
Python面向对象编程简介
18 1
|
1月前
|
算法 搜索推荐 测试技术
python排序算法及优化学习笔记1
python实现的简单的排序算法,以及算法优化,学习笔记1
33 1
|
1月前
|
存储 机器学习/深度学习 数据安全/隐私保护
【Python 基础教程 24】全面入门Python面向对象编程:深度探索与实战教程
【Python 基础教程 24】全面入门Python面向对象编程:深度探索与实战教程
79 0
|
1月前
|
Java 程序员 数据安全/隐私保护
Python教程第6章 | Python面向对象
Python面向对象概念、类的定义和调用、类方法、修改和增加类属性、类和对象、初始化函数、类的继承、类的多态、类的访问控制
43 0
|
1月前
|
存储 Python
Python的面向对象编程(OOP)
Python的面向对象编程(OOP)
14 0