码迷,mamicode.com
首页 > 其他好文 > 详细

@property 用法

时间:2018-07-12 16:32:14      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:rop   obj   ini   imp   pre   fence   under   datetime   标识   

import datetime
import time

class PK(object):
def __init__(self,name,attack=0.0,defence=0.0):
self.name = name
self.attack = attack
self.defence = defence
self._obtain_time = datetime.datetime.now()

@property
def defence(self):
return self._defence

@defence.setter
def defence(self,value):
if value < 0 :
print("防御值小于0设置为0")
self._defence = 0
elif value > 1000:
print("防御值大于1000被设置为1000")
self._defence = 1000
else:
self._defence = value

@property
def age(self):
return (datetime.datetime.now() - self._obtain_time).seconds

a = PK("铠甲",defence=10000)
print(a.defence)
a.defence = -100
print(a.age)
time.sleep(1)
print(a.age)

@property 是把方法变为属性,_one_underline 标识这个是私有不应该直接被访问,不属于API,但可以通过defence 这个实例属性来访问

@property 用法

标签:rop   obj   ini   imp   pre   fence   under   datetime   标识   

原文地址:https://www.cnblogs.com/wudeng/p/9299377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!