属性与私有属性 --Python3

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

属性:通过方法改造
属性代码编写时:方法的上面加上@property,方法的参数只有一个self
属性的调用:无需加括号,使用对象.方法
属性的应用场景:对于简单的方法,当不需要传参且有返回值时,可以使用。

class Foo:
    def __init__(self):
        pass

    @property
    def start(self):
        return 'start'

    @property
    def stop(self):
        return 'stop'
        
f_obj = Foo()
print(f_obj.start, f_obj.stop)
'''
start stop
'''

当然,属性有公有和私有之分,私有属性的定义可以在方法的前面加上双下划线_ _。私有属性可以通过使用类中的其它方法访问:

class Foo:
    def __init__(self):
        pass
	# 私有属性__start
    @property
    def __start(self):
        return 'start!'
        
	# 私有属性__stop
    @property
    def __stop(self):
        return 'stop!'
        
	# 通过方法访问私有属性
    def get_start_stop(self):
        print(self.__start)
        print(self.__stop)
        
f_obj = Foo()
f_obj.get_start_stop()
'''
start!
stop!
'''

猜你喜欢

转载自blog.csdn.net/Thanlon/article/details/94229392