python类属性和实例属性
来源:互联网 发布:java后端转前端 编辑:程序博客网 时间:2024/05/22 08:11
对于类属性和实例属性,如果在类方法中引用某个属性,则属性必是类属性,而如果在实例方法中
引用某个属性(不作更改),并且存在同名的类属性,此时若实例对象有该名称的实例属性,则实例属性会
屏蔽类属性,即引用的是实例属性。若实例对象没有该名称的实例属性,则引用的是类属性
如果在实例方法更改某个属性,并且存在同名的类属性,此时若实例对象有该名称的实例属性,则修改的是实例属性,若实例
对象没有该名称的实例属性,则会创建一个同名称的实例属性。相应修改类属性,如果在类外,可以通过类对象修改,如果在类里面,只有
类方法、静态方法、类对象方法,学会利用类方法或者静态方法创建多个类对象
引用某个属性(不作更改),并且存在同名的类属性,此时若实例对象有该名称的实例属性,则实例属性会
屏蔽类属性,即引用的是实例属性。若实例对象没有该名称的实例属性,则引用的是类属性
如果在实例方法更改某个属性,并且存在同名的类属性,此时若实例对象有该名称的实例属性,则修改的是实例属性,若实例
对象没有该名称的实例属性,则会创建一个同名称的实例属性。相应修改类属性,如果在类外,可以通过类对象修改,如果在类里面,只有
类方法中可以进行修改。
class Hourse():height=30;#类属性width=30;def __init__(self,length):self.length=length;#实例属性、对象属性self.weight=100hou1=Hourse()hour2=Hourse()hour1.weight=200hour1.height=40 #修改成功height=40,如果通过对象取修改类属性,python会自动给这个对象创建一个和类属性相同名字的实例属性,当删除之后,仍可以用类原来的属性del hour1.height #删除后 height=30
类方法、静态方法、类对象方法,学会利用类方法或者静态方法创建多个类对象
class Hourse():height=30;#类属性width=30;def __init__(self,length):self.length=length;#实例属性、对象属性self.weight=100#关键字@classmethod@classmethod #类方法的书写方式,通过类方法修改类属性def setHeight(cls,value):cls.height=valuedef setWigth(self,value):#实例方法self.weight=value@staticmethod #静态方法,可以没有参数,必须有关键字@staticmethoddef changeHeight(value):self.height=value@classmethoddef creatNumHourse(cls,number):templist=[]i=0while number-i>0 :templist.append(Hourse(3.5))i+=1return templistHourse.height=50 #类的属性修改为50hour1=Hourse(2)hour2=Hourse(3)print(hour1.height,hour2.height)#50,50Hourse.setHeight(32.2) #通过类对象,调用类方法print(hour1.height,hour2.height)#32.2 32.2hour2.setHeight(33) #通过对象实例,可以调用类方法print(hour1.height,hour2.height)#33,33hour1.weight=200hour1.height=40 #修改成功height=40,如果通过对象取修改类属性,python会自动给这个对象创建一个和类属性相同名字的实例属性,当删除之后,仍可以用类原来的属性print(hour1.height,hour2.height) #40 ,33del hour1.height #删除后 height=30;print(hour1.height,hour2.height) #33, 33#不可以用类对象调用实例方法##但是可以通过类对象调用静态方法 #通过实例对象可以调用实例方法HourList=hour1.creatNumHourse(3)print(len(HourList)) #3HourseList=hour2.creatNumHourse(4)print(len(HourseList))#4HourL=Hourse.creatNumHourse(5)print(len(HourL))#5#将方法封成实例化,把创建对象放到类方法中:类方法或者静态方法
阅读全文
0 0
- python 实例属性和类属性
- python的类属性和实例属性
- python的类属性和实例属性
- python的类属性和实例属性
- python 类属性和实例属性
- python中的类属性和实例属性
- python的类属性和实例属性
- python的类属性和实例属性
- Python类属性和实例属性
- Python--类属性和实例属性
- python中的类属性和实例属性
- Python 类属性和实例属性
- python中的类属性和实例属性
- python类属性和实例属性
- python中的类属性和实例属性
- Python类属性,实例属性
- python实例属性和类属性精讲
- python中类属性和实例属性的区别
- VM下扩容Linux需要注意格式
- Linux下获取硬件特征码
- 将博客搬至CSDN
- ABAP在ALV工具栏显示一个计时器
- PHP的反射机制
- python类属性和实例属性
- Mac下部署tigase7.1.0说明
- Codeforces 438E The Child and Binary Tree
- java_switch语句详解
- Vue.js快速入门示例
- windows下QT如何通过ODBC连接达梦数据库
- “media change: please insert the disc labeled” when trying to install Ruby on Rails [duplicate]
- Mysql 每天自动弹出dos界面taskeng.exe的解决办法
- Node.js 安装配置