내가 설명한 here과 같은 자바 스크립트 스타일 사전을 사용하고 있습니다. 구현 :파이썬 점 표기법 dict이 하이픈으로 분리됩니까?
class DotDict(dict):
def __getattr__(self, attr):
return self.get(attr, None)
__setattr__= dict.__setitem__
__delattr__= dict.__delitem__
나는 문제없이 몇 시간 동안이 구조를 사용하지만, 최근과 같이 하이픈 키를 사용하여 사전을 필요로했습니다
foo = DotDict()
foo.a = 'a' #Business as usual
foo.a-b = 'ab' #Broken
에 결과를 foo.ab에 할당 :
SyntaxError: can't assign to operator
'-'가 빼기 작업으로 표시되고 키 이름의 일부로 표시되지 않기 때문에 깨집니다. 도트 스타일의 멤버 액세스로 사전을 만드는 또 다른 방법이 있습니까?
,하지만 당신은 그것을 할 싶지 않아, 사람들은 당신의 코드를 읽을 것이다 : 당신은 밑줄 하이픈을 교체한다면, 코드가 작동합니다 네가 그렇게하지 않기를 바란다. (물론 dot 스타일의 멤버 액세스 권한을 얻지 못할 것입니다.) – zmo
-1 이것 역시 유효한 injavascript가 아닙니다. – jsbueno