我想允許用戶在實例化後更改self.path,但不允許其他實例變量。但是,如果self.path被更改,則應重新評估其他實例變量。這可能嗎?防止更改實例變量
class File(object):
def __init__(self, path):
self.path = os.path.abspath(path)
self.name = os.path.basename(self.path)
self.parent = os.path.dirname(self.path)
self.extension = self._get_extension()
self.category = self.get_category(self.extension)
self.exists = os.path.isfile(self.path)
def _get_extension(self):
extension = None
result = os.path.splitext(self.name)[1][1:]
if result:
extension = result
return extension
def get_category(self, extension):
if extension:
file_extension = extension.upper()
for key in fileGroups.keys():
common = set(fileGroups[key]) & set([file_extension])
if common:
return key
return 'UNDEFINED'
謝謝,幫了很多。 – giantas
但是,如何覆蓋File的子類中的路徑@property? (如果你不介意) – giantas
@giantas這個答案應該可以幫助你http://stackoverflow.com/a/1021484/3110529下面的答案使用'超'http://stackoverflow.com/a/1021477/3110529 – Dillanm