已有183人关注
修改不了
还有0人有此问题
发表在Python图书答疑 2019-04-21 《Python从入门到项目实践》
是否精华
版块置顶:

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)

分享到:
精彩评论 1
andy
学分:2118 LV10
TA的每日心情
继续努力
2017-02-06 23:42:34
2019-04-23
沙发

读者你好:

    在__init__()方法中,定义的__show属性是双下划线,而在@show.setter  中,self._show 这里你写成 了单下划线,所以最后结果tvshow.show还是原来的值,没有变化。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照