python创建一个类初始化两个变量name、age_Python面向对象程序设计之类和对象、实例变量、类变量用法分析...

本文实例讲述了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.变量名”.

附:

什么是新式类:https://www.jb51.net/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为了简洁性,不会复制一份类的数据给每一个对象,每一个对象之后存有其特有的属性,当其需要使用属性或方法时,先看自己有没有,如果没有再去类中找

类变量的创建:

可以在声明类的时候定义

也可以使用赋值来定义:

实例变量的创建:

可以在__init__中定义

也可以使用赋值来定义:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

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

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

本文地址: http://www.cppcns.com/jiaoben/python/303626.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值