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) # 报错,无法直接使用内部变量