Python 面向对象

Posted kiki5881

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 面向对象相关的知识,希望对你有一定的参考价值。

面向对象

面向对象

  • 与面向过程对比:二狗子准备结婚,需要盖房子

    • 面向过程:数学逻辑的映射,学会做个好员工

    • 面向对象:生活逻辑的映射,学会做个好领导

  • 生活实例

    • 类: 人 手机 电脑

    • 对象: 习大大、黄友 杰哥的T2手机、路飞的iPhone X 杰哥的mac、李森的华硕

  • 官方定义:

    • 类:具有相同特征(属性和行为)事物的抽象

    • 对象:某个类的具象

  • 编程语言:

    • 类:是一种自定义的数据类型

    • 对象:某个类型的变量

类的语法

  • 定义类:


    class 类名:
    内容
  • 示例:定义一个人的类

    # 定义类
    class Person:
        # 行为的体现,通过方法
    ?
        # 吃饭
        def eat(self):
            print(红烧鸡腿我喜欢吃)
    ?
        # 打篮球
        def play(self):
            print(俺喜欢打篮球)
  • 声明对象

    bryant = Person()

  • 调用方法

    bryant.eat()

    bryant.play()

  • 设置属性:是动态添加的

    bryant.name = ‘科比.布莱恩特‘

  • 获取属性

    print(bryant.name)


?
- 语法
?
- 定义类需要使用关键字:class
- 类名:原则上只要符合标识符的命名规范即可,但是我们通常使用大驼峰风格(每个单词首字母大写)命名
- 不要忘记类名后面的冒号‘:‘
- 类的内容要进行缩进
- 行为:通过函数体现,与外面定义函数的方式相似,第一个参数默认是self
- 属性:通过变量体现,属性是动态添加的,因此在定义时可以不体现
- 成员访问:
  - 成员属性:对象.属性名
  - 成员方法:对象.方法名()
?
- self
?
- 示例:
?
```python
class Person:
      def run(self):
          # self表示当前对象:谁调用该方法就代表谁
          print({}每天以2m/s的速度锻炼5km.format(self.name))
?
      def introduce(self):
          # self这个名字可以是任意的,但是通过都是要这个
          
          # 既可以访问成员属性
          print(我叫{}.format(self.name))
          # 也可以调用成员方法
          self.run()
?
  mugai = Person()
  mugai.name = 木盖
?
  # print(mugai)
  mugai.run()
?
  curry = Person()
  curry.name = 斯蒂芬.库里
  curry.run()
  # 调用方法是第一个参数self不需要
  curry.introduce()
  • 说明:

    • 每个成员方法都有这么一个参数,调用的时候不需要传递

    • 名字可以不是self,只不过通常我们都是要self而已

    • self表示当前对象,谁调用该方法就表示谁,哪个对象调用就代表哪个对象

    • 通过self可以访问成员属性,也可以调用成员方法

  • __ str __方法

    • 示例:

    class Person:
        # 使用print函数打印对象时,默认打印对象所属类型及对象地址
        # 该函数要求返回一个字符串,当对象作为print参数打印时会打印该字符串
        def __str__(self):
            # 要求返回一个字符串
            return 我叫{},今年{}.format(self.name, self.age)
    xiaoming = Person()
    xiaoming.name = 小明
    xiaoming.age = 18 print(xiaoming)

- 练习:

- 自定义一个狗类,完成属性的动态添加,方法的调用
- 属性:名字、年龄、颜色
- 方法:跑、吃、游泳、叫


























以上是关于Python 面向对象的主要内容,如果未能解决你的问题,请参考以下文章

python之路之前没搞明白4面向对象(封装)

Python面向对象学习之八,装饰器

python:第二部分:面向对象:面向对象object orinted

Python 面向对象

面向面试编程代码片段之GC

面向对象编程其实很简单——Python 面向对象(初级篇)