-2
私のコードを見てみると、FileNodeを作成して文字列(filename)を渡しています。ファイル名セッターがトリガーされると残りのフィールドにデータが入力されますが、動作するようには見えません。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'を行いますが、あなたはそれが設定され、属性のための単一のアンダースコアで始まる名前を使用してみてください。 – vaultah
@JokerMartini私は有権者の一人ではありませんが、彼らはそれが打ち間違いのように見えるので、彼らはそれを保留にしていると思います。あなたがクラスを初期化するところでは、明示的に 'self.extension'を' '" ***に設定した後、あなたは '@ filename.setter'に拡張を設定しようとします。 '__init __()'の中で 'self.extension =" "'を 'self.filename = filename'の前に動かすと、意図した通りに動作します。 ''ろうそく ''を 'ex'に戻したいと思うでしょう。 –
@JRichardSnapeはRichardに感謝します。私はむしろPythonの初心者ですので、それは私にとって初めての他の人にとってはシンプルに見えるかもしれません。 – JokerMartini