-2
如果你看看我的代码,我创建一个FileNode并将它传递给字符串(文件名)。当文件名设置器被触发时,它应该填充剩余的字段,但它看起来不起作用。设置python对象属性不改变值
我目前只是试图在'文件名'设置程序中测试设置属性'扩展',但它似乎并没有改变属性,为什么?
import os
import pprint
class FileNode(object):
def __init__(self, filename):
self.filename = filename
self.show = ""
self.episode = ""
self.sequence = ""
self.shot = ""
self.task = ""
self.version = ""
self.extension = ""
self.isValid = False
@property
def filename(self):
return self.filename
@property
def extension(self):
return self.extension
@filename.setter
def filename(self, value):
self._filename = value
fl, ex = os.path.splitext(value)
self._extension = "candles"
@extension.setter
def extension(self, value):
self._extension = value
a = FileNode("BTMAN_1005_001_007_model_cup_v001.max")
# print (vars(a))
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(vars(a))
b = FileNode("BTMAN_1005_001_007_model_v001.max")
# print (vars(b))
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(vars(b))
这*不*'变化extension',但是你把它设置成'“”'在__init__'的'结束。 – vaultah
@JokerMartini我不是选民之一,但我想他们是搁置,因为它似乎是一个错字。在你初始化类的地方 - 你试图在'@ filename.setter'中设置扩展名后,你明确地将'self.extension'设置为'“”***。如果你在'__init __()'''self.filename = filename'之前移动self.extension =“”',它将按照我的设想工作。我想你也想把''蜡烛''改回''ex'。 –
@JRichardSnape谢谢理查德。我对Python非常陌生,所以对于其他人来说对我来说可能很简单。所以谢谢你解释 – JokerMartini