python 实现类熟悉的不可修改保护 ,指定部分范围可以修改

# 只能被读取,不可被更改的属性
# 指定范围内的可以更改 setter
class TVShow:
   list_film = ["喜洋洋",'熊出没','大头儿子','猫和老鼠']
   def __init__(self,show):
      self.__show = show
   @property
   def show(self):
      return self.__show
   @show.setter
   def show(self,value):
      if value in TVShow.list_film: #判断值是否在列表中
         self.__show = "你选择了"+value+"稍后播放"  # 修改返回的值
      else:
         self.__show = "你点播的电影不存在"

tvshow = TVShow("喜洋洋") # 创建实例
print("正在播放-->",tvshow.show) # 获取属性值
print("你可以从",tvshow.list_film,"中选择点播电影") # 获取属性值
tvshow.show = "熊出没"
print(tvshow.show)