发布于2020-02-17 21:16 阅读(433) 评论(0) 点赞(26) 收藏(5)
这篇文章主要介绍了Python面向对象之静态属性、类方法与静态方法,结合实例形式分析了Python面向对象程序设计中静态属性、类方法及静态方法相关概念、使用方法及操作注意事项,需要的朋友可以参考下
本文实例讲述了Python面向对象之静态属性、类方法与静态方法。分享给大家供大家参考,具体如下:
# -*- coding:utf-8 -*-
class Room:
def __init__(self,name,owner,width,length):
self.name = name
self.owner = owner
self.width = width
self.length = length
@property
def cal_area(self):
return self.length * self.width
r1 = Room('卧室','alex',100,1000)
print(r1.cal_area)
#r1.cal_area = 10 并不是真实的数据属性,所以不可以在外部直接赋值。
运行结果:
100000
# -*- coding:utf-8 -*-
class Room:
style = '别墅'
def __init__(self,name,owner,width,length):
self.name = name
self.owner = owner
self.width = width
self.length = length
@property
def cal_area(self):
return self.length * self.width
@classmethod
def tell_style(cls):
#这么写会报错,因为name是对象的数据属性,而类方法是不可以访问实例的属性的
#print('%s的房间风格是%s'%(cls.name,cls.style))
print('房间的风格是%s'%(cls.style))
#类方法的定义只是为了类去调用
Room.tell_style()
运行结果:
房间的风格是别墅
# -*- coding:utf-8 -*-
class Room:
style = '别墅'
def __init__(self,name,owner,width,length):
self.name = name
self.owner = owner
self.width = width
self.length = length
@property
def cal_area(self):
return self.length * self.width
@classmethod
def tell_style(cls):
#这么写会报错,因为name是对象的数据属性,而类方法是不可以访问实例的属性的
#print('%s的房间风格是%s'%(cls.name,cls.style))
print('房间的风格是%s'%(cls.style))
@staticmethod
def shower():
print("洗澡")
def test(self):
print("这不是静态方法,而且自动生成参数,必须要有实例")
Room.shower()
r1 = Room('别墅','alex',10,10)
r1.shower() #这么调用也没有问题
#报错,因为不是静态方法,必须要实例化
Room.test()
运行结果:
洗澡
洗澡
Traceback (most recent call last):
File "C:\py\jb51PyDemo\src\Demo\test.py", line 26, in <module>
Room.test()
TypeError: unbound method test() must be called with Room instance as first argument (got nothing instead)
推荐我们的python学习基地,看老程序是如何学习的!从基础的python脚本、爬虫、django、数据挖掘等编程技术,工作经验,还有前辈精心为学习python的小伙伴整理零基础到项目实战的资料,!每天都有程序员定时讲解Python技术,分享一些学习的方法和需要留意的小细节,
作者:就是这么自信
链接:https://www.pythonheidong.com/blog/article/231677/266c12611a78a653900a/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!