# -*- coding: utf-8 -*-
"""
Created on Sun Nov 13 23:19:03 2016
@author: toby
"""
#知识点:私有方法和私有字段
'''
应用场景:
不想被外部访问的东西,或者说不想暴露给外部的时候
那么就可以定义私有方法或私有字段
'''
class Province:
memo = 'One of China\'s 23 provinces' #静态字段
def __init__(self,name,capital,leadership,flag):
self.Name = name #动态字段
self.Capital = capital #动态字段
self.Leadership = leadership #动态字段
self.__Thailang = flag #定义一个私有字段
#定义一个方法,实现在内部访问私有字段,让外部可以间接的访问这个私有字段
def show(self):
print self.__Thailang
#也可以通过@property装饰器,构造一个特性实现在内部访问私有字段,让外部可以间接的访问这个私有字段
@property
def Thailang(self):
return self.__Thailang
#定义个私有方法
def __sha(self):
print 'hello world!'
#定义个公有方法,实现在内部访问私有方法,让外部可以间接的访问到这个私有方法
def Foo2(self):
self.__sha()
if __name__ == "__main__":
#实例化两个对象,对象名分别是:hb、sd
japan = Province('riben','shjiazhuang','liyang',True) #值True传递给self.__Thailang
#外部尝试访问私有字段提是无法访问的
#print japan.__Thailang
#间接的访问私有字段
japan.show()
#外部访问私有方法,是无法访问的
#japan.__sha()
#访问公有方法,实现间接访问私有方法
japan.Foo2()
#访问一下刚才通过@property装饰器构造的方法,看看能不能访问到私有字段,答案是可以的
japan.Thailang
转载于:https://blog.51cto.com/freshair/1874224