【发布时间】:2017-09-10 12:19:43
【问题描述】:
我希望允许用户在实例化后更改 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'
【问题讨论】:
标签: python variables instance-variables