2021年12月8日
面向对象编程:oop【object oriented programming】是一种python的编程思路
面向过程编程:就一开始学习的,按解决问题步骤去写代码【根据业务逻辑写代码】
面向对象:在思考问题的时候,首先分析“怎么按照步骤去实现”
然后将问题解决拆解成若干步骤,并将这些步骤对于方法一步步最终完成功能。
面向对象:关注设计思维
面向过程不适合做大项目
面向过程:怎么做
面向对象:谁来做
类:具有一组相似或相同特征【属性】和行为【方法】的一系列多个对象的组合
对象:实实在在的一个东西,类的实例化,具象化
类是对象的抽象化,对象是类的具体化
实例方法:在类的内部,使用def关键字来定义 第一个参数默认是self【名字标识可以是其他的名字,但这个位置必须被占用】
实例方法归于类的实例所有
属性:在类内部定义的变量是【类属性】;在方法内定义的【通过类似于self.变量名】变量,为实例属性
class Person:#name='小明'#对应人的特征,类属性age=20#对应人的特征,类属性def __init__(self):self.name='小明'#实例属性def eat(parms):#对应人的行为,实例方法print('大口吃')passdef run(self):print('飞速跑')passpass
xm=Person()
print('{}的年龄是:{}'.format(xm.name,xm.age))#调用函数
xm.eat()
#创建实例对象
xw=Person()
xw.eat()
__init__
python自带内置函数,【魔术方法】
是一个初始化方法,用来定义实例属性和初始化数据,在创建对象时候自动调用,不用手动调用
利用传参机制可让我们定义功能更加强大并且方便
class People:def __init__(self,name,sex,age):'''实例属性声明'''self.name=nameself.sex=sexself.age=agepassdef eat(self,food):print(self.name+'喜欢吃'+food)pass
zp=People('张鹏','男',18)#创建新对象时,自动执行
print(zp.name,zp.sex,zp.age)#直接输出默认值
zp.eat('香蕉')
lh=People('李辉','男',23)
print(lh.name,lh.sex,lh.age)
lh.eat('苹果')
self和对象指向同一个内存地址,可以认为self就是对象的引用
self特点:
只有在类中定义实例方法才有意义,在调用时候不必传入相应的参数,而由解释器自动指向
self名称可自由更改,可定义其他的名字,只是约定俗成为self
self指的是类实例对象本身,
class Person:def eat(self):'''实例方法:return:'''print('self=%s',id(self))passpass
xw=Person()
print('xw=%s',id(xw))
xw.eat()
__new__与__init__区别
__new__类的实例化方法,必须要返回,否则对象创建不成功。至少有一个参数cls,代表实例化的类,才参数在实例化时由python解释器自动提供
__init__用来做数据属性的初始化工作,也可认为是实例的构造方法,接受类的实例self,并对其进行改造
__new__执行早于__init__
class Person:def __init__(self,pro,name,food):self.pro=proself.name=nameself.food=foodprint('---init---函数执行')def eat(self, name, food):print('%s 喜欢吃 %s 修的专业是:%s'%(self.name,self.food,self.pro))passdef __str__(self):#直接打印对象信息return'%s 喜欢吃 %s 修的专业是%s'%(self.name,self.food,self.pro)def __new__(cls, *args, **kwargs):'''创建对象实例的方法 每调用一次就会生成一个新的对象 cls就是class的缩写场景:可以控制创建对象的一些属性限定,经常用来做单例模式时候来使用:param args::param kwargs:'''print('---new---函数执行')return object.__new__(cls)#在这里是真正创建对象实例
xw=Person('心理学','小王','榴莲')
print(xw)#直接输出对象
2021年12月8日相关推荐
- 3D打印机硬件驱动-马林固件最新版本2.0.X中文注释(1)marlin 2.0.9.2 截至发稿时间2021年12月16日
马林固件最新版本翻译注释 /*============================================================================== Marlin ...
- 【贪玩巴斯】带你一起攻克英语语法长难句—— 第二章——并列句全解 2021年12月17日——2022年2月5日
[贪玩巴斯]带你一起攻克英语语法长难句-- 第二章--并列句全解 2021年12月17日--2022年2月5日 并列句 1.什么是并列句? 2.并列连词以及与其同义的逻辑关系词 1.常见的并列连词 2 ...
- 2021年12月9日|12月10日|
2021年12月7日|8日|9日|10日 完成POI关键字搜索--高d地图 公交线路--百d地图 LeetCode视频 P2 认识复杂度和简单排序算法 选择排序 冒泡排序 异或运算 异或简介及原理 异 ...
- 【贪玩巴斯】Unity3D初学圣经(一)——学习要求 Unity简单介绍 游戏引擎介绍 课程体系介绍 「1-1 到 1-4 」—— 2021年12月9日
Unity3D初学圣经 一 --学习要求 & Unity简单介绍 & 游戏引擎介绍 & 课程体系介绍 本文对应视频P1 1-1 到P2 1-4 1.学习要求 2.Unity简单 ...
- XSX和PS5对标的电脑配置(2021年12月10日分析)
Xbox Series X对标电脑配置(2021年12月10日下午) 前言 最近买了台小米电视86,光看电视感觉不过瘾,想玩点游戏. 但是专门买一个XSX或者PS5又感觉没必要,因为我也不是游戏重度爱 ...
- pytorch 和torchvision 版本对应(2021年12月15日最新版)
pytorch 和torchvision 版本对应 原文链接 2021年12月15日更新: 2021年10月20日更新: 2021年7月14日更新:
- 美团外卖在全球已超过1亿次下载;福成股份1万头肉牛繁殖场于2021年12月18日建成 | 知消...
美团外卖在全球已超过1亿次下载.移动数据与分析提供商App Annie宣布,三快科技公司(Sankuai Technology Company)发布的一款美食递送app美团外卖在全球的iOS和Goog ...
- 【贪玩巴斯】带你学:C++ tips ——知识点: C++整型short,int,long和long long的区别 2021年12月20日
[贪玩巴斯]带你学:C++ tips --知识点: C++整型short,int,long和long long的区别 2021年12月20日 C++的整型有short,int,long和long lo ...
- 注意 2022年一级计算机考证报名2021年12月29日-2022年1月7日
2022全国计算机等级考试报名 2022年3月全国计算机等级考试报名将于2021年12月29日-2022年1月7日进行,报名网址为教育部考试中心NCRE考务管理系统(https://ncre-bm.n ...
- 2021年12月13日|14日|15日|16日|17日
2021年12月第三周周记 B站左神Leetcode视频 归并排序 package class02; import java.util.Arrays;public class Code01_Merge ...
最新文章
- python 流式编程_使用Python在两台计算机之间流式传输实时视频
- OPW-00001: Unable to open password-file
- invalid signature_php,javascript - 微信接口调用一直是 invalid signature
- ctl命令 usb_USB入门系列之六 —— USB设备的枚举过程
- 基于Spring Security的认证授权_应用详解_自定义退出_Spring Security OAuth2.0认证授权---springcloud工作笔记130
- html text align属性,CSS中的text-align属性怎么用
- 【问题解决】华硕A450C触控板失灵
- 支付宝生活号已激活但自动登录提示没权限,什么原因
- rapidminer java_在Java应用程序中集成RapidMiner
- 解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”的问题。
- 高铁、地铁这些轨道列车的动力来源是什么?
- Flume安装部署,采集方案配置文件编写案例,启动agent采集数据
- 电影《战狼2》的可视化分析
- 如何在Word里面进行文字批量替换
- pyQt5 学习笔记(18)QLineEdit 单行文本输入
- 蒲公英 · JELLY技术周刊 Vol.12 尤雨溪新作 Vite, 你会支持么?
- 3 OpenCV 车牌识别-2 颜色定位
- Unity个人版切换到加强版
- 通过Visual Studio诊断工具定位软件CPU瓶颈
- STM8 中断控制器(ITC)
热门文章
- Fillchar(var X; Count: Longint; value)
- 原生JS熊猫登录注册验证,获取本地存储loaclStroage的用户名
- 如何验证手机三要素(手机号、姓名、身份证)
- opencl学习(一)
- 如何成为一个厉害的领导者?提升思考力的5个底层法则
- B2C 什么是B2C B2C的意义 B2C发展策略 B2C应用
- ssh/scp 使不提示 All activities are monitored and reported.
- Latex两个表格之间的间距过大 两个图片,两个表格,图片和图片表格和表格 图片和表格 表格和图片 浮动体之间的距离
- 新浪短网址API接口
- Webrtc新增FFmpeg视频编解码模块