python面向对象

Posted 2019重新起航

tags:

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

1、类和对象

1.1类

   类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用

            特征被称为属性

           行为被称为方法

1.2对象

    对象是由类创建出来的一个具体存在,可以直接使用,由哪一个类创建出来的对象,就拥有在哪一个类中定义的属性和方法

2、类和对象的关系

  先有类后有对象,类只有一个,而对象可以有很多个,不同的对象之间属性可能会各不相同。类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多或少

3、类的设计

  在使用面向对象开发前,应该首先分析需求,确定程序中需包括哪些类,通常包括三个要素:

         类名:每个单词首字母大写,单词与单词之间没有下划线

        属性:这类事物具有什么样特征

        方法:这类事物具有什么样的行为

 

面向对象基础语法

 01dir内置函数(知道)

     在python中对象几乎是无所不在的,在我们之前学的变量、数据、函数都是对象。在python中可以使用以下两个方法验证:

      1、在标识符/数据后属入一个点.然后按下TAB键,ipython会提示该对象能够调用的方法列表

      2、在内置函数dir传入标识符/数据,可以查看对象内所有的属性和方法。提示--方法名--格式的方法是python提供的内置方法/属性

02定义简单的类

     面向对象是更大的封装,在一个类中封装多个方法,这样通过这个类创建出来的对象,就可以直接调用这些方法了!

2.1定义只包含方法的类

    class 类名:

            def  方法1(self,参数列表):

                   pass

           def  方法2(self,参数列表):             

                   pass

2.2创建对象

当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:

    对象变量=类名()

2.3第一个面向对象程序

   需求:小猫爱吃鱼,小猫要喝水

class  Cat:

      def eat(self):
#哪一个对象调用的方法,self就是哪一个对象的引用 print("%s 爱吃鱼" %self.name)
print("小猫爱吃鱼") def drink(self) print("小猫要喝水") #创建猫对象 tom=Cat() tom.eat() tom.drink()
print(tom)
#再创建一个猫对象
lazy_cat=Cat()
lazy_cat.eat()
lazy_cat.drink()
print(lazy_cat)

引用概念的强调

  在面向对象开发中,引用的概念是同样适用的!

在python中使用类创建对象后,tom变量中仍然记录的是对象在内存中的地址,也就是tom变量引用了新建的猫对象。使用print输出对象变量,默认情况下,是能够输出这个变量引用的对象是由哪个类创建的对象,以及在内存中的地址(十六进制表示)

   提示:在计算机中,通常使用十六进制表示内存地址

       %d可以以10进制输出数字

       %x可以以16进制输出数字

03方法中的self参数

    3.1案例改造---给对象增加属性

       在python中,要给对象设置属性,非常容易,但不推荐使用

              因为:对象属性的封装应该封装在类的内部

       只需要在类的外部的代码中直接通过点.设置一个属性即可

    tom.name="Tom"

   lazy_cat.name="大懒猫"

3.2使用self在方法内部输出每一只猫的名字

   由哪一个对象调用的方法,方法内的self就是哪一个对象的引用

   在类封装的方法内部,self就表示当前调用方法的对象自己

  调用方法时,程序员不需要传递self参数

  在方法内部

         可以通过self.访问对象的属性

        也可以通过self.调用其他的对象方法

      

 

 

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

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

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

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

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

Python 面向对象

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