[python] Pycharm 관리자가 “d = {}”에 대해 불평하는 이유는 무엇입니까?

d = {}Pycharm의 코드 관리자 로 사전을 초기화하면 경고가 발생합니다.

이 사전 작성은 사전 리터럴로 다시 작성 될 수 있습니다.

다시 쓰면 d = dict()경고가 사라집니다. 때문에 {}이미 입니다 사전 문자 그대로, 나는 확실히 메시지가 잘못된 꽤 있어요. 또한, 모두 보인다 d = {}d = dict()유효하고 파이썬 있습니다.

이 관련 질문은 선택이 스타일 / 선호의 문제 일 뿐이라는 결론을 내린 것 같습니다.
“d = dict ()”와 “d = {}”의 차이점

Pycharm이 왜 불평 d = {}할까요?

최신 정보:

맥은 못을 박았다. 경고는 실제로 플래그 된 것이 아니라 여러 줄에 적용되었습니다.

Pycharm은 사전을 초기화 한 다음 사전에서 값을 설정하는 일련의 연속 명령문을 찾는 것 같습니다. 예를 들어 경고가 트리거됩니다.

d = {}
d['a'] = 1

그러나이 코드는 :

d = {}
pass
d['a'] = 1



답변

사전 선언에 대한 다음 코드는 무엇입니까?

pycharm이 다음과 같은 경우 오류를 트리거한다고 생각합니다.

dic = {}
dic['aaa'] = 5

당신이 쓸 수 있듯이

dic = {'aaa': 5}

BTW : 함수를 사용하면 오류가 사라진다고해서 pycharm dict()이 문자 그대로 라고 생각할 필요는 없습니다 . 그것은 다음에 대해 불평하지 않는다는 것을 의미 할 수 있습니다.

dic = dict()
dic['aaa'] = 5

HTH!


답변

프로젝트 설정 또는 기본 설정에서 비활성화 할 수 있습니다.

  • 설정-> 검사-> Python으로 이동하십시오.
  • “사전 작성을 사전 리터럴로 다시 작성할 수 있습니다”를 선택 취소하십시오.

답변

한 번의 조작으로 사전을 초기화하는 것을 좋아하는 사람들을 위해

d = {
  'a': 12,
  'b': 'foo',
  'c': 'bar'
}

같은 많은 줄 대신

d = dict()
d['a'] = 12
d['b'] = ....

결국 나는 이것으로 끝났다.

d = dict()
d.update({
  'a': 12,
  'b': 'foo',
  'c': 'bar'
})

Pycharm은 이것에 대해 불평하지 않습니다


답변

mydict = {
  a: 5,
  b:z+c/2
}

사전을 먼저 초기화 한 다음 새 값을 다시 할당하지 않고 사전을 직접 작성할 수 있습니다.


답변

나는이 경고가 지옥에서 나 빠지고있는 상황입니다. 필자의 경우, dict을 부분적으로 리터럴로 채우고 부분적으로 튜플 출력에서 ​​함수로 채우고 있습니다.

def get_other_values():
    return 3, 4

foo = {
    "a": 1,
    "b": 2
}
foo["c"], foo["d"] = get_other_values()

따라서 get_other_values ​​출력에 대한 임시 변수를 작성하지 않으면 리터럴을 사용하여 dict를 작성하더라도 PEP8에서이 경고를 생성합니다. 그리고 값이 튜플로 출력되므로 리터럴에 c 및 d 키를 할당 할 수 없습니다.


답변