두 속성 (file_path
및 save_path
)이있는 개체가 있습니다. save_path
이 명시 적으로 설정되지 않은 한 file_path
과 동일한 값을 지정합니다.'__setattr__`을 (를) 사용해야합니까, 아니면 ...?
내가이 작업을 수행하는 방법을 생각 는 다음과 같은 뭔가, __setattr__
함께 :
class Class():
...
def __setattr__(self, name, value):
if name == 'file_path':
self.file_path = value
self.save_path = value if self.save_path == None else self.save_path
elif name == 'save_path':
self.save_path = value
그러나이 속성이 설정 될 때마다 호출 __setattr__
때문에 나에게 무한 루프를 줄 것 같은이 보인다 . 그래서, 위의 글을 쓰고 그것을 피하는 적절한 방법은 무엇입니까?
'save_path'와'file_path'가 변경 가능할 필요가 없다면, 아마도 이런 식으로 할 수 있습니다. 그들이 변경 가능해야한다면, 그렇게 잘 작동하지 않습니다. – user2357112
나는 같은 생각을 가지고 있었지만 덜 조직적이었습니다. 위의 내용은'file_path'로 시작한 것이 아니라'save_path'가 아니라, 나중에'file_path'를 갱신 한 것으로 보입니다. 아마도 유스 케이스가 필요하지 않을 것입니다. 그것에 대해 생각해야 할 것입니다. – Chuck
@Chuck 귀하의 질문은 당신이 항상 file_path를 가지지 만 때로는 save_path라는 것을 의미합니다. 하나 또는 다른 것이 있으면, 가지고있는 것을 각각 설정할 수 있습니다. 하지만 둘 다 없으면 어떡하지? 그런 다음 기본값 인 –