Python_类的属性
短信预约 -IT技能 免费直播动态提醒
1.类属性分类
类的属性分为:
数据属性:就是类中的变量;
函数属性:就是类中函数,在面向对象设计中通常称为方法;
类和对象的属性均使用点(.)来访问自己的属性
2.类的属性
类的定义与函数极其相似,我们可以使用函数的作用域来理解类的属性调用方式。
我们可以通过类的属性字典来查询类的属性,如下图所示:
代码块为:
class Door():
"门的类"
address = "浙江省杭州市"
def __init__(self,size,color,type):
"初始化门的数据"
self.size = size
self.color = color
self.type = type
def open(self):
"门打开的方法"
print("这个%s门打开了" %self.type)
def off(self):
"门关闭的方法"
print("这个%s门关闭了" %self.type)
print(Door.__dict__)
所以获取类的属性有两种方法:
① 使用英文点(.)来调用属性,如下图所示:
代码块如下:
class Door():
"门的类"
address = "浙江省杭州市"
def __init__(self,size,color,type):
"初始化门的数据"
self.size = size
self.color = color
self.type = type
def open(self):
"门打开的方法"
# print("这个%s门打开了" %self.type)
print("这个门打开了")
def off(self):
"门关闭的方法"
print("这个%s门关闭了" %self.type)
#类的数据属性
print("门的出产地为:", Door.address)
#类的函数属性
Door.open('self') #实参任意填
② 使用类的属性字典来调用属性,如下图所示:
代码块如下:
class Door():
"门的类"
address = "浙江省杭州市"
def __init__(self,size,color,type):
"初始化门的数据"
self.size = size
self.color = color
self.type = type
def open(self):
"门打开的方法"
# print("这个%s门打开了" %self.type)
print("这个门打开了")
def off(self):
"门关闭的方法"
# print("这个%s门关闭了" %self.type)
print("这个门关闭了" )
#类的数据属性,方法一
# print("门的出产地为:", Door.address)
#类的函数属性
# Door.open('self') #实参任意填
#类的数据属性,方法二
addr = Door.__dict__['address']
print("门的出产地为:", addr)
Door.__dict__['open']('铝合金')
Door.__dict__['off']('铝合金')
③ 总结
方法一实际上是调用方法二,即直接用点来调用类的属性时是先调用类的属相字典,在取出对应的结果。
3.类的其他特殊属性
代码块如下:
class Door():
"门的类"
address = "浙江省杭州市"
def __init__(self,size,color,type):
"初始化门的数据"
self.size = size
self.color = color
self.type = type
def open(self):
"门打开的方法"
# print("这个%s门打开了" %self.type)
print("这个门打开了")
def off(self):
"门关闭的方法"
# print("这个%s门关闭了" %self.type)
print("这个门关闭了" )
print(Door.__name__) #类的名字
print(Door.__doc__) #类的文档
print(Door.__base__) #类继承的第一个父类
print(Door.__bases__) #类继承的父类组成的元组
print(Door.__dict__) #类的属性字典
print(Door.__module__) #类定义所在的模块
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341