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面向对象的主要内容,如果未能解决你的问题,请参考以下文章