Python面向对象程序设计之类和对象、实例变量、类变量用法分析


Posted in Python onMarch 23, 2020

本文实例讲述了Python面向对象程序设计之类和对象、实例变量、类变量用法。分享给大家供大家参考,具体如下:


类和对象:

  • 类的定义:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类的优势:将一个对象的功能集中于一体,便于操作,降低了代码的重复。
  • 实例化:创建一个类的实例,类的具体对象。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

使用 class 语句来创建一个新类:

class Dog:
  #self 代表的是类的实例,代表当前对象的地址
  def __init__(self,name):##称为类的构造函数,进行初始化成员变量
    self.name=name
  def bulk(self):###自定义函数
    print("%s:汪汪!"%self.name)

d1=Dog("奥巴马")##创建对象,传入__init__所需的变量,self默认自动传入

d1.bulk()#调用方法
print(d1)

为什么要有self:

以类变量和实例变量为解释,对于共有属性,一般会在共有部分定义,不需要__init__,而比如说因为人人都有自己的名字,那么名字应该是一个人私有的。而类的函数由于为了节约资源,并不会拷贝给每一个对象,每一个对象都要从类的定义区中调用方法,对于涉及对象特有属性的方法,调用方法的时候必须传入自身对象self才能使函数获得私有的数据,而调用这个私有的数据使用”self.变量名”.

Python面向对象程序设计之类和对象、实例变量、类变量用法分析

附:

什么是新式类:https://3water.com/article/183280.htm


实例变量和类变量:

  • 实例变量是对于每个实例都独有的数据,而类变量是该类所有实例共享的数据
  • 变量使用的顺序是:实例变量--》类变量,如果实例变量中没有才会去类变量中找
  • 【但即使是类中的变量,也是需要使用self.变量名来使用】
class Dog:
  age=8
  def __init__(self,name):
    self.name=name
  def bulk(self):
    print("汪汪")

d1=Dog("包子")
d2=Dog("馒头")
d1.age=10
print("Dog:",Dog.age,"\tD1:",d1.age,"\tD2:",d2.age)


-------------------------
结果:
Dog: 8   D1: 10   D2: 8
  • 节约论:python为了简洁性,不会复制一份类的数据给每一个对象,每一个对象之后存有其特有的属性,当其需要使用属性或方法时,先看自己有没有,如果没有再去类中找

类变量的创建:

  • 可以在声明类的时候定义

Python面向对象程序设计之类和对象、实例变量、类变量用法分析

  • 也可以使用赋值来定义:

Python面向对象程序设计之类和对象、实例变量、类变量用法分析

Python面向对象程序设计之类和对象、实例变量、类变量用法分析


实例变量的创建:

  • 可以在__init__中定义

Python面向对象程序设计之类和对象、实例变量、类变量用法分析

  • 也可以使用赋值来定义:

Python面向对象程序设计之类和对象、实例变量、类变量用法分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python设计模式之门面模式简单示例
Jan 09 Python
python散点图实例之随机漫步
Aug 27 Python
python用post访问restful服务接口的方法
Dec 07 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
Python3将数据保存为txt文件的方法
Sep 12 Python
Python3直接爬取图片URL并保存示例
Dec 18 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
python excel和yaml文件的读取封装
Jan 12 Python
Python3 shelve对象持久存储原理详解
Mar 23 #Python
python新式类和经典类的区别实例分析
Mar 23 #Python
Python count函数使用方法实例解析
Mar 23 #Python
使用python实现飞机大战游戏
Mar 23 #Python
如何在Django中使用聚合的实现示例
Mar 23 #Python
python3注册全局热键的实现
Mar 22 #Python
浅谈Python线程的同步互斥与死锁
Mar 22 #Python
You might like
PHP之变量、常量学习笔记
2008/03/27 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue实现扫码功能
2020/01/17 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
涉外文秘个人求职的自我评价
2013/10/07 职场文书
找工作最新求职信
2013/12/22 职场文书
大学生旷课检讨书
2014/01/22 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
授权委托书怎么写
2014/09/25 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
导游词之阆中古城
2019/12/23 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript