변수의 존재가 불확실한 상태가 잘못된 프로그래밍 인 이유는 무엇입니까?

user3398838

요점은 어떻게 피할 수 있습니까?

자세한 내용은 아래 링크를 참조하십시오. 특히 paxdiablo의 답변입니다. 변수가 있는지 어떻게 확인합니까?

짐작 하셨겠지만 런타임에 존재를 알 수없는 변수가있는 웹 페이지를 프로그래밍 한 시나리오가 있습니다.
무슨 일이 일어나고 있는지는 사용자가 여러 가지 형식의 정보를 업로드한다는 것입니다. 더 구체적으로 말하면 주소입니다. 예를 들어, 거리에는 방향 (남서쪽, 북쪽)이있을 수 있고 주소에는 콘도 한정자 (unit # 2F)가있을 수 있습니다. 이것들 (또는 그들과 같은 것 / 시나리오)은 다른 변수에 할당되고 표현 될 것입니다. 데이터가 내 코드에서 조작됨에 따라 조건문이 있습니다.

if street_dir_var:
    #do something

따라서 내 질문 (들) : 왜 이것이 잘못된 형식이며 적절한 대체물은 무엇입니까?

추신-중요한 경우 Python으로 코딩 중입니다.

매달다

조건부는 괜찮습니다. 문제는 street_dir_var정의되지 않은 경우 해당 행이 NameError. 기술적으로를 잡을 수는 NameError있지만 유지 관리 할 수없는 지저분한 코드를 만듭니다. 또한 변수 이름에 데이터를 넣는다 는 것을 암시 하는데, 이는 나쁜 코드 냄새입니다.

일반적으로 변수는 액세스를 시도하는 논리 분기에 정의되어야합니다. 어떤 이유로 든 "적용되지 않음"이라면 최소한 None. 이것은 변수에 대한 훌륭한 기본값으로 사용되며 종종 필요한 키워드 인수의 기본값으로 사용됩니다.

여기에서 더 구체적으로 알아 보려면 :

이것들 (또는 그들과 같은 것 / 시나리오)은 다른 변수에 할당되고 표현 될 것입니다.

정말 나쁜 코드 냄새. 이러한 모든 변수는 단일 주소에 대한 데이터를 나타냅니다. 이러한 모든 변수를 클래스, a , a 또는 a 같은 단일 변수 로 집계해야 합니다 .listdictnamedtuple

class Address:
    def __init__(self, **kwargs):
       self.street = kwargs.get('street')
       self.directional = kwargs.get('directional')
       self.condo = kwargs.get('condo')

user_data = parse_data(some_data_source) # user_data looks like a dict

address = Address(**user_data)

하나의 주소, 하나의 컨테이너. address.condo일 수 None있지만 적어도 내가 요청할 때 정의됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

인수가없는 생성자가 잘못된 상태로 인스턴스화되는 이유는 무엇입니까?

분류에서Dev

동전 변경 동적 프로그래밍 접근 방식에서 테스트 케이스가 잘못된 이유는 무엇입니까?

분류에서Dev

부모 요소의 preventDefault가 프로그래밍 방식으로 클릭시 자식 확인란을 확인하지 않는 이유는 무엇입니까?

분류에서Dev

함수형 프로그래밍에서 IO의 조인 메서드가 unsafePerformIO를 두 번 실행해야하는 이유는 무엇입니까?

분류에서Dev

템플릿 클래스의 템플릿 typef가 잘못된 구문 인 이유는 무엇입니까?

분류에서Dev

MVC 앱의 날짜가 잘못된 형식 인 이유는 무엇입니까?

분류에서Dev

Javascript로 div의 자식 수가 잘못된 이유는 무엇입니까?

분류에서Dev

이 폐쇄로 인해 Node.js에서 메모리 누수가 발생합니까 아니면 잘못된 프로그래밍입니까?

분류에서Dev

인용 된 변수 확장의 따옴표가 bash에서 잘 작동하는 이유는 무엇입니까?

분류에서Dev

이 Angular 응용 프로그램은 사용자가 로그인 한 후 표시된 콘텐츠를 변경하는 사용자 상태 (로그인 / 로그 아웃)를 처리 할 수없는 이유는 무엇입니까?

분류에서Dev

설치된 가장 높은 버전의 커널 RPM을 프로그래밍 방식으로 확인하는 방법은 무엇입니까?

분류에서Dev

Zookeeper가 실행 중인지 프로그래밍 방식으로 확인하는 방법은 무엇입니까?

분류에서Dev

다운로드 한 이미지가 잘못된 이유는 무엇입니까?

분류에서Dev

내 AppWidgetProvider의 onReceive에서 이러한 상태 변수가 null 인 이유는 무엇입니까?

분류에서Dev

내 통합 테스트가 get에 실패하는 이유는 무엇입니까? "ArgumentError : 잘못된 인수 (예상되는 URI 개체 또는 URI 문자열)"

분류에서Dev

" 'UnityEngine.WaitUntil.WaitUntil (system.func <bool>)에 대한 최상의 오버로드 된 메서드 일치에 잘못된 인수가 있습니다."라는 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

PowerPoint가 잘못된 색상으로 인쇄되는 이유는 무엇입니까?

분류에서Dev

bison : 행동에서 상수를 인쇄 할 때 결과가 잘못된 이유는 무엇입니까?

분류에서Dev

변경 불가능한 프로그래밍이 변경 가능한 것보다 선호되는 이유는 무엇입니까?

분류에서Dev

매개 변수의 매개 변수가 존재하는지 확인하는 방법은 무엇입니까?

분류에서Dev

매개 변수의 매개 변수가 존재하는지 확인하는 방법은 무엇입니까?

분류에서Dev

호출 가능한 객체를 인수로 전달할 때 g ++에서 "이전의 잘못된 선언자"에 대해 불평하는 이유는 무엇입니까?

분류에서Dev

"strstr ()에 대한 잘못된 매개 변수 개수"오류가 발생하는 이유는 무엇입니까?

분류에서Dev

Jenkins 파이프 라인 : 셸 명령을 실행하면 "잘못된 대체"가 반환되지만 그 이유는 무엇입니까?

분류에서Dev

pandoc을 라이브러리로 사용할 때 "commitAndReleaseBuffer : 잘못된 인수 (잘못된 문자)"가 발생할 수있는 원인은 무엇입니까?

분류에서Dev

CheckBox가 Kotlin에서 프로그래밍 방식으로 작동하지 않는지 확인한 이유는 무엇입니까?

분류에서Dev

<li> 태그가 잘못 배치 된 이유는 무엇입니까?

분류에서Dev

연도가 변경되었는지 프로그래밍 방식으로 확인하는 가장 효율적인 방법은 무엇입니까?

분류에서Dev

ERRNO 22-Python-잘못된 인수-이 경로로 인해 오류 처리 스크립트에서 오류가 발생하는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    인수가없는 생성자가 잘못된 상태로 인스턴스화되는 이유는 무엇입니까?

  2. 2

    동전 변경 동적 프로그래밍 접근 방식에서 테스트 케이스가 잘못된 이유는 무엇입니까?

  3. 3

    부모 요소의 preventDefault가 프로그래밍 방식으로 클릭시 자식 확인란을 확인하지 않는 이유는 무엇입니까?

  4. 4

    함수형 프로그래밍에서 IO의 조인 메서드가 unsafePerformIO를 두 번 실행해야하는 이유는 무엇입니까?

  5. 5

    템플릿 클래스의 템플릿 typef가 잘못된 구문 인 이유는 무엇입니까?

  6. 6

    MVC 앱의 날짜가 잘못된 형식 인 이유는 무엇입니까?

  7. 7

    Javascript로 div의 자식 수가 잘못된 이유는 무엇입니까?

  8. 8

    이 폐쇄로 인해 Node.js에서 메모리 누수가 발생합니까 아니면 잘못된 프로그래밍입니까?

  9. 9

    인용 된 변수 확장의 따옴표가 bash에서 잘 작동하는 이유는 무엇입니까?

  10. 10

    이 Angular 응용 프로그램은 사용자가 로그인 한 후 표시된 콘텐츠를 변경하는 사용자 상태 (로그인 / 로그 아웃)를 처리 할 수없는 이유는 무엇입니까?

  11. 11

    설치된 가장 높은 버전의 커널 RPM을 프로그래밍 방식으로 확인하는 방법은 무엇입니까?

  12. 12

    Zookeeper가 실행 중인지 프로그래밍 방식으로 확인하는 방법은 무엇입니까?

  13. 13

    다운로드 한 이미지가 잘못된 이유는 무엇입니까?

  14. 14

    내 AppWidgetProvider의 onReceive에서 이러한 상태 변수가 null 인 이유는 무엇입니까?

  15. 15

    내 통합 테스트가 get에 실패하는 이유는 무엇입니까? "ArgumentError : 잘못된 인수 (예상되는 URI 개체 또는 URI 문자열)"

  16. 16

    " 'UnityEngine.WaitUntil.WaitUntil (system.func <bool>)에 대한 최상의 오버로드 된 메서드 일치에 잘못된 인수가 있습니다."라는 오류가 발생하는 이유는 무엇입니까?

  17. 17

    PowerPoint가 잘못된 색상으로 인쇄되는 이유는 무엇입니까?

  18. 18

    bison : 행동에서 상수를 인쇄 할 때 결과가 잘못된 이유는 무엇입니까?

  19. 19

    변경 불가능한 프로그래밍이 변경 가능한 것보다 선호되는 이유는 무엇입니까?

  20. 20

    매개 변수의 매개 변수가 존재하는지 확인하는 방법은 무엇입니까?

  21. 21

    매개 변수의 매개 변수가 존재하는지 확인하는 방법은 무엇입니까?

  22. 22

    호출 가능한 객체를 인수로 전달할 때 g ++에서 "이전의 잘못된 선언자"에 대해 불평하는 이유는 무엇입니까?

  23. 23

    "strstr ()에 대한 잘못된 매개 변수 개수"오류가 발생하는 이유는 무엇입니까?

  24. 24

    Jenkins 파이프 라인 : 셸 명령을 실행하면 "잘못된 대체"가 반환되지만 그 이유는 무엇입니까?

  25. 25

    pandoc을 라이브러리로 사용할 때 "commitAndReleaseBuffer : 잘못된 인수 (잘못된 문자)"가 발생할 수있는 원인은 무엇입니까?

  26. 26

    CheckBox가 Kotlin에서 프로그래밍 방식으로 작동하지 않는지 확인한 이유는 무엇입니까?

  27. 27

    <li> 태그가 잘못 배치 된 이유는 무엇입니까?

  28. 28

    연도가 변경되었는지 프로그래밍 방식으로 확인하는 가장 효율적인 방법은 무엇입니까?

  29. 29

    ERRNO 22-Python-잘못된 인수-이 경로로 인해 오류 처리 스크립트에서 오류가 발생하는 이유는 무엇입니까?

뜨겁다태그

보관