请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 999|回复: 9

python面向对象基础

[复制链接]

7

主题

21

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2021-9-15 18:38:06 | 显示全部楼层 |阅读模式
python编程
第一种:函数式编程--def-----面向过程编程(C语言)
第二种:面向对象编程(新型编程方式,让编程更简单)

编程语法
语法--死记硬背
沟通交流:语法,语意
中国人--德国人?中国人学了德语----德国人学了中文(语法)

编程:人与计算机进行沟通====只有语法,没有语意==下命令

面向对象
类:比如人类==对于事物特征的一个概括性的描述
类定义的语法:python
class--类的名称:
        语句块

对象:对具体事物的称呼,就是实际存在的客观事物,比如:布兰妮
        创建对象语法:  对象名 = 类名(实参)

属性:就是事物的特征,比如人类特征:身高、体重、姓名、年龄

方法:就是对象的行为,比如 人类:说活,驾驶公交车,诊断病情,购物,玩游戏
        语法:就是函数的语法,不过写在类的内部

面向对象编程的三大特征:封装、继承、多态

私有属性:在python的类中,属性带有两下划线开头,称为私有属性
特征:不能在类的外部其它地方使用
私有属性如何使用?==面向对象编程---封装

封装
语法角度:把对象的属性设置为私有,再编写2个方法,1个方法获取私有属性的值,一个方法设置私有属性的值
应用角度:1、封装隔离了代码的复杂的? 2、封装提高了属性的安全性

类属性:把类看成一个对象,类对象的属性

内置属性:类自带的属性,不需要人为的去创建,python直接提供的
一般是 双下划线 属性名 双下划线 形式写的

if __name__ == '__main__':
由于在导包的时候,会执行所导入包的顶层代码,
在实际包导入过程中,其实我们不许呀执行包的顶层代码,
所以加入了if __name__ == '__main__': 进行判断
__name__在本文件执行的时候,显示__name__
在其它文件调用的时候,显示包以及模块的路径

类的方法:
构造方法:其实是类的内置方法(就是类自带的方法) def __init__(self……)
方法作用:给对象的属性进行初始化赋值使用的,且它是类里面第一个被自动执行的内置方法

私有方法:在普通方法前面加上双下划线,
私有方法引用语法:再类的内部可以直接使用,
在类的外部:对象名._类名__私有方法名(实参)

类方法:把类看成一个对象,类对象的方法

静态方法:
在写python代码时,有时候独立的一个方法不方便存放,此时可以存放在类中,但是跟目前的类没有任何关系

内置方法:创建类之后,系统赋予的自带的方法,这些方法有一些可以自动执行如
双下划线 方法名 双下划线()
__init__(self) 构造方法········__del__(self) 析构方法

python规范性代码
文件:小写加下划线 base_page 单词之间用下划线
包:小写加下划线 base_page 单词之间用下划线
变量:小写加下划线 element_obj
全局变量:大写加下划线 ELEMENT_OBJ
方法:小写加下划线、动词写前面 open_browser()
类:驼峰式命名法 单词的首字母大写

只有两种写法:全英文、全拼音

面向对象三大特征:
封装,继承,多态

封装:
方法封装:把复杂的代码逻辑隐藏起来,当用户使用的时候比较简单,如遥控器
数据封装:数据封装即把对象的属性具体的值隐藏起来,对外部显示的只是对象的属性名
比如xxx的名字,钱包里的钱
属性设置为私有,编写一个get和set方法去获取或修改私有属性的值

继承:继承家产、遗传的意思
实例:创建三个类:人类、老师类、学生类
人类:属性 name、age 方法 say()
老师:属性 name、age、type(类别) 方法 say() teach()
学生:属性 name、age、grade(年级) 方法 say() study()

比如 在创建人类时少了sex ==== 购物商城:有新需求  用户 优惠券
人类 属性 name、age、sex 方法 say()

老师类、学生类 是 属于人类的一部分 人类称为基类/父类/超类等
老师类、学生类属于人类的子类

继承两大好处:
1.减少代码的冗余,比如人类写好的属性和方法,学生类就可以不用写了,直接继承过来
2.更易于代码的维护,比如人类增加的属性,直接给子类===学生类继承过去了

如果继承的时候,子类也有构造方法怎么办?

java不支持多继承,java的子类只能有一个父类
python支持多继承,python的子类可以有多个父类
语法 class 子类(父类1,父类2,父类3……)
python一般以第一个父类为主父类,优先级最高

抽象类:
包含抽象方法的类,称为抽象类
抽象方法 == 只包含方法的声明和定义,不包含方法的实现
抽象方法语法:
@abstractmethod
def 抽象方法名():
        pass      抽象方法这里一定是pass语句,即方法啥都不实现

抽象类的语法

抽象类中的抽象方法相当于定义了一个模糊行为,比如说话
其它子类让抽象类做父类的时候,必须去实现这个模糊的行为,把行为
做成具体的,符合子类特征的操作 本质上,是抽象类提供了一个标准规范
子类必须实现 保证对象的完整性


回复

使用道具 举报

0

主题

16

帖子

104

积分

版主

Rank: 7Rank: 7Rank: 7

积分
104
发表于 2021-9-16 11:32:18 | 显示全部楼层
太棒了!!!
回复

使用道具 举报

10

主题

13

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2021-9-16 14:57:52 | 显示全部楼层
不错不错
回复

使用道具 举报

8

主题

19

帖子

117

积分

注册会员

Rank: 2

积分
117
发表于 2021-9-16 14:59:42 | 显示全部楼层

不错不错
回复

使用道具 举报

8

主题

19

帖子

117

积分

注册会员

Rank: 2

积分
117
发表于 2021-9-16 15:00:48 | 显示全部楼层
ij sfszc wwww
回复

使用道具 举报

0

主题

7

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2021-9-23 09:17:30 | 显示全部楼层
感谢老哥
回复

使用道具 举报

6

主题

28

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2021-9-26 18:00:39 | 显示全部楼层
这个帖子不错,给你点赞
回复

使用道具 举报

6

主题

28

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2021-9-26 18:01:09 | 显示全部楼层
这个帖子不错,给你点赞1
回复

使用道具 举报

6

主题

28

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2021-9-26 18:22:15 | 显示全部楼层
写的可以
回复

使用道具 举报

6

主题

28

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2021-9-26 18:29:30 | 显示全部楼层
6666666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-1-25 07:38 , Processed in 0.044040 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表