zoukankan      html  css  js  c++  java
  • python @property

    先来一个例子:

    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 socket 二进制
    全面介绍内存管理机制
    glog修改
    mysql c api
    http twisted
    IOCP 模型1
    IOCP 模型2 AcceptEx
    python
    Python Twisted
    Java 拾遗
  • 原文地址:https://www.cnblogs.com/chenadong/p/9515135.html
Copyright © 2011-2022 走看看