«python-internals» 태그된 질문

파이썬은 내부적으로 어떻게 작동합니까? (예를 들어) 설계 결정과 사용 된 내부 데이터 구조 및 알고리즘과 관련된 질문에 사용합니다.

10
Python 3에서 왜 "1000000000000000 in range (1000000000000001)"가 그렇게 빠릅니까?
range()실제로 파이썬 3의 객체 유형 인 함수 는 생성기와 비슷한 내용을 즉시 생성 한다는 것을 이해합니다 . 이 경우 다음 줄이 시간이 많이 걸릴 것이라고 예상했을 것입니다. 1000000000000000 in range(1000000000000001) 또한 : 내가 추가하는 0의 수에 관계없이 계산에는 거의 동일한 시간 (기본적으로 순간)이 소요됩니다. 나는 또한 이와 같은 것을 시도했지만 …

14
@property 데코레이터는 어떻게 작동합니까?
내장 함수의 property작동 방식을 이해하고 싶습니다 . 나를 혼란스럽게 property하는 것은 데코레이터로도 사용할 수 있지만 데코레이터로 사용될 때가 아니라 내장 함수로 사용될 때만 인수를 취한다는 것입니다. 이 예제는 문서 에서 가져온 것입니다 . class C(object): def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value …


11
"is"연산자는 정수로 예기치 않게 동작합니다
На этот вопрос есть ответы на 스택 오버플로 на русском : Присваивание целых (int)를 в Питоне 왜 파이썬에서 다음이 예기치 않게 동작합니까? >>> a = 256 >>> b = 256 >>> a is b True # This is an expected result >>> a = 257 >>> b = 257 >>> …

4
Python 3.6 이상에서 사전이 주문됩니까?
사전은 이전 화신과 달리 Python 3.6 (최소한 CPython 구현)에서 주문됩니다. 이것은 실질적인 변화처럼 보이지만 문서 의 짧은 단락 일뿐 입니다. 언어 기능이 아닌 CPython 구현 세부 사항으로 설명되지만 앞으로 이것이 표준이 될 수 있음을 암시합니다. 요소 사전을 유지하면서 새로운 사전 구현이 이전 사전보다 어떻게 더 잘 수행됩니까? 다음은 설명서의 텍스트입니다. …

20
델파이는 언제 파이썬에서 유용합니까?
파이썬에 del키워드가 필요한 이유를 생각할 수 없습니다 (대부분의 언어에는 비슷한 키워드가없는 것 같습니다). 예를 들어 변수를 삭제하는 대신 변수를 할당 None할 수 있습니다. 사전에서 삭제할 때 del방법을 추가 할 수 있습니다. del파이썬 에 보관해야 할 이유가 있습니까? 아니면 파이썬의 쓰레기 수거 전날의 흔적입니까?


2
어떤 float <integer 비교가 다른 것들보다 4 배 느린 이유는 무엇입니까?
float를 정수와 비교할 때 일부 값 쌍은 비슷한 크기의 다른 값보다 평가하는 데 훨씬 오래 걸립니다. 예를 들면 다음과 같습니다. &gt;&gt;&gt; import timeit &gt;&gt;&gt; timeit.timeit("562949953420000.7 &lt; 562949953421000") # run 1 million times 0.5387085462592742 그러나 float 또는 integer가 특정 양만큼 작거나 커지면 비교가 훨씬 빠르게 수행됩니다. &gt;&gt;&gt; timeit.timeit("562949953420000.7 &lt; 562949953422000") # …

2
왜 'x'( 'x')가 'x'== 'x'보다 빠릅니까?
&gt;&gt;&gt; timeit.timeit("'x' in ('x',)") 0.04869917374131205 &gt;&gt;&gt; timeit.timeit("'x' == 'x'") 0.06144205736110564 여러 요소가있는 튜플에서도 작동하며 두 버전 모두 선형으로 성장하는 것 같습니다. &gt;&gt;&gt; timeit.timeit("'x' in ('x', 'y')") 0.04866674801541748 &gt;&gt;&gt; timeit.timeit("'x' == 'x' or 'x' == 'y'") 0.06565782838087131 &gt;&gt;&gt; timeit.timeit("'x' in ('y', 'x')") 0.08975995576448526 &gt;&gt;&gt; timeit.timeit("'x' == 'y' or 'x' == 'y'") …

8
CPython에서 GIL (Global Interpreter Lock)이란 무엇입니까?
전역 통역사 잠금이란 무엇이며 왜 문제입니까? 파이썬에서 GIL을 제거하는 데 많은 소음이 들었으며, 그것이 왜 그렇게 중요한지 이해하고 싶습니다. 나는 컴파일러 나 인터프리터를 직접 작성하지 않았으므로 세부 사항에 소홀하지 마십시오. 아마 이해해야합니다.



5
클래스 정의의 목록 이해에서 클래스 변수에 액세스
클래스 정의 내 목록 이해에서 다른 클래스 변수에 어떻게 액세스합니까? 다음은 Python 2에서 작동하지만 Python 3에서는 실패합니다. class Foo: x = 5 y = [x for i in range(1)] Python 3.2는 오류를 제공합니다. NameError: global name 'x' is not defined 노력도 효과 Foo.x가 없습니다. Python 3 에서이 작업을 수행하는 방법에 …



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.