面向对象编程: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日相关推荐

  1. 3D打印机硬件驱动-马林固件最新版本2.0.X中文注释(1)marlin 2.0.9.2 截至发稿时间2021年12月16日

    马林固件最新版本翻译注释 /*============================================================================== Marlin ...

  2. 【贪玩巴斯】带你一起攻克英语语法长难句—— 第二章——并列句全解 2021年12月17日——2022年2月5日

    [贪玩巴斯]带你一起攻克英语语法长难句-- 第二章--并列句全解 2021年12月17日--2022年2月5日 并列句 1.什么是并列句? 2.并列连词以及与其同义的逻辑关系词 1.常见的并列连词 2 ...

  3. 2021年12月9日|12月10日|

    2021年12月7日|8日|9日|10日 完成POI关键字搜索--高d地图 公交线路--百d地图 LeetCode视频 P2 认识复杂度和简单排序算法 选择排序 冒泡排序 异或运算 异或简介及原理 异 ...

  4. 【贪玩巴斯】Unity3D初学圣经(一)——学习要求 Unity简单介绍 游戏引擎介绍 课程体系介绍 「1-1 到 1-4 」—— 2021年12月9日

    Unity3D初学圣经 一 --学习要求 & Unity简单介绍 & 游戏引擎介绍 & 课程体系介绍 本文对应视频P1 1-1 到P2 1-4 1.学习要求 2.Unity简单 ...

  5. XSX和PS5对标的电脑配置(2021年12月10日分析)

    Xbox Series X对标电脑配置(2021年12月10日下午) 前言 最近买了台小米电视86,光看电视感觉不过瘾,想玩点游戏. 但是专门买一个XSX或者PS5又感觉没必要,因为我也不是游戏重度爱 ...

  6. pytorch 和torchvision 版本对应(2021年12月15日最新版)

    pytorch 和torchvision 版本对应 原文链接 2021年12月15日更新: 2021年10月20日更新: 2021年7月14日更新:

  7. 美团外卖在全球已超过1亿次下载;福成股份1万头肉牛繁殖场于2021年12月18日建成 | 知消...

    美团外卖在全球已超过1亿次下载.移动数据与分析提供商App Annie宣布,三快科技公司(Sankuai Technology Company)发布的一款美食递送app美团外卖在全球的iOS和Goog ...

  8. 【贪玩巴斯】带你学: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 ...

  9. 注意 2022年一级计算机考证报名2021年12月29日-2022年1月7日

    2022全国计算机等级考试报名 2022年3月全国计算机等级考试报名将于2021年12月29日-2022年1月7日进行,报名网址为教育部考试中心NCRE考务管理系统(https://ncre-bm.n ...

  10. 2021年12月13日|14日|15日|16日|17日

    2021年12月第三周周记 B站左神Leetcode视频 归并排序 package class02; import java.util.Arrays;public class Code01_Merge ...

最新文章

  1. python 流式编程_使用Python在两台计算机之间流式传输实时视频
  2. OPW-00001: Unable to open password-file
  3. invalid signature_php,javascript - 微信接口调用一直是 invalid signature
  4. ctl命令 usb_USB入门系列之六 —— USB设备的枚举过程
  5. 基于Spring Security的认证授权_应用详解_自定义退出_Spring Security OAuth2.0认证授权---springcloud工作笔记130
  6. html text align属性,CSS中的text-align属性怎么用
  7. 【问题解决】华硕A450C触控板失灵
  8. 支付宝生活号已激活但自动登录提示没权限,什么原因
  9. rapidminer java_在Java应用程序中集成RapidMiner
  10. 解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”的问题。
  11. 高铁、地铁这些轨道列车的动力来源是什么?
  12. Flume安装部署,采集方案配置文件编写案例,启动agent采集数据
  13. 电影《战狼2》的可视化分析
  14. 如何在Word里面进行文字批量替换
  15. pyQt5 学习笔记(18)QLineEdit 单行文本输入
  16. 蒲公英 · JELLY技术周刊 Vol.12 尤雨溪新作 Vite, 你会支持么?
  17. 3 OpenCV 车牌识别-2 颜色定位
  18. Unity个人版切换到加强版
  19. 通过Visual Studio诊断工具定位软件CPU瓶颈
  20. STM8 中断控制器(ITC)

热门文章

  1. Fillchar(var X; Count: Longint; value)
  2. 原生JS熊猫登录注册验证,获取本地存储loaclStroage的用户名
  3. 如何验证手机三要素(手机号、姓名、身份证)
  4. opencl学习(一)
  5. 如何成为一个厉害的领导者?提升思考力的5个底层法则
  6. B2C 什么是B2C B2C的意义 B2C发展策略 B2C应用
  7. ssh/scp 使不提示 All activities are monitored and reported.
  8. Latex两个表格之间的间距过大 两个图片,两个表格,图片和图片表格和表格 图片和表格 表格和图片 浮动体之间的距离
  9. 新浪短网址API接口
  10. Webrtc新增FFmpeg视频编解码模块