>백엔드 개발 >파이썬 튜토리얼 >`str = str(...)`이 Python에서 TypeError를 일으키는 이유는 무엇입니까?

`str = str(...)`이 Python에서 TypeError를 일으키는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-09 07:14:06792검색

Why Does `str = str(...)` Cause a TypeError in Python?

내장 기능 재정의: 'str = str(...)'

에서 TypeError 이해하기 내장 객체는 예상치 못한 오류를 일으킬 수 있습니다. 다음 코드를 고려해보세요.

def example(parameter):
    global str
    str = str(parameter)
    print(str)

example(1)
example(2)

이 코드를 실행하면 두 가지 다른 시나리오가 발생할 수 있습니다. example()에 대한 첫 번째 호출은 성공하지만 두 번째 호출에서는 TypeError가 발생합니다. 이는 str에 대한 두 번째 할당이 그 의미를 재정의하기 때문입니다.

str()의 역할

Python에서 str()은 사전 정의된 함수입니다. 객체를 문자열로 변환합니다. str을 새 값에 할당하면 이 내장 기능을 덮어씁니다. str을 전역으로 선언하면 함수 외부의 최상위 변수를 참조해야 함을 나타냅니다.

코드 수정

TypeError, 두 가지 옵션이 있습니다:

  1. 사용자 정의 사용 변수: example() 함수 내 지역 변수에 대해 다른 이름을 선택하세요. str과 같은 예약된 Python 이름을 사용하지 마세요.
  2. 전역 문 제거: str에 새 값을 할당하기 전에 전역 문을 삭제하세요. 이렇게 하면 함수 내의 전역 str 참조가 수정되는 것을 방지할 수 있습니다.

내장 객체를 수정하면 의도하지 않은 결과가 발생할 수 있다는 점을 기억하세요. Python의 기본 동작과의 충돌을 방지하려면 함수 내에서 지역 변수를 계속 사용하세요.

위 내용은 `str = str(...)`이 Python에서 TypeError를 일으키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.