Python没有专门处理私有变量的关键字,所以Python里,规定了以"__"开头的变量,无法在外部直接使用。

如下代码:

class M3U8SubTask(threading.Thread):

    __finish = False

    @property
    def finish(self):
        return self.__finish

    def rollback(self):

        self.__finish = False

    def commit(self):

        self.__finish = True

那么会有如下的结果:

t = M3U8SubTask()

t.commit()

print(t.finish) #finish是使用修饰符定义的变量,可以访问

t.rollback()  # 使用rollback,在内部使用__finish, 也是允许的

print(t.finish)

t.finish = True # 报错,没有定义finish的set方法,

print(t.finish)  

print(t.__finish) # 报错,无法直接使用内部变量

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐