码迷,mamicode.com
首页 > 编程语言 > 详细

python @property

时间:2018-08-22 00:12:33      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:new   括号   不能   科技   int   ado   class   def   init   

先来一个例子:

class Person(object):
	def __init__(self, name):
		self.__name = name

	@property
	def get_name(self):
		return self.__name

	@get_name.setter
	def get_name(self, new_name):
		self.__name = new_name


person = Person("adong")
person.get_name = "Adong"
print person.get_name
>>>Adong

  如上例子中:

1、使用__name,私有化变量,在类的外面不能直接调用该变量或者属性,尽管可以使用黑科技绕过,但不推荐

2、@property,如果不加,需要这样调用xxx.get_name(args),加上之后,可以使用xxx.get_name 不用加括号;调用的方法和属性相同;

3、使用了@property的方法,如果要改变返回的值,可以继续使用装饰器:@get_name.setter,定义返回的值。

python @property

标签:new   括号   不能   科技   int   ado   class   def   init   

原文地址:https://www.cnblogs.com/chenadong/p/9515135.html

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