C 코드 모듈에 내장 (__file__
결여) 또는 .so
또는 .pyd
동적 라이브러리 (자신의 __file__
가 표시되는)에 살 수있다 - 그건 당신이 걱정하지 않도록 구현 세부입니다.
당신은 파이썬 호출, C 코드 기능이 에 학습 코드를 공부하여 작동 방법을 이해하려면
는 C는 일반적으로 실제로 생산적
;-) C에서 코딩에 비해 최고 (훨씬 적은 어렵다 읽어 보시기 바랍니다. 그러나 종종 C 코드화 된 기능에 대한 (암시 적, 비판적인) "샘플 Python 구현"을 발견하게되며
을 공부할 수 있습니다.
일반적으로 C로 코딩 된 Python 표준 라이브러리 기능의 유용한 저장소는 pypy 프로젝트 (Python으로 구현 된 Python 구현)입니다. 해당 소스는 찾아 볼 수 있습니다. here 물론 다운로드 할 수 있습니다. 그들을 기계에서 정독하십시오.
""" Supplies the internal functions for functools.py in the standard library """
class partial:
"""
partial(func, *args, **keywords) - new function with partial application
of the given arguments and keywords.
"""
__slots__ = ['func', 'args', 'keywords']
def __init__(self, func, *args, **keywords):
if not callable(func):
raise TypeError("the first argument must be callable")
self.func = func
self.args = args
self.keywords = keywords
def __call__(self, *fargs, **fkeywords):
newkeywords = self.keywords.copy()
newkeywords.update(fkeywords)
return self.func(*(self.args + fargs), **newkeywords)
읽고 이해하기 아주 사소한, 나는 희망 : 특히
,이 pypy의 _functools.py 구현입니다!
'functools'의 구현은 2.5와 2.6에서 C 언어로되어 있습니다. 소스를보고 싶다면, C를 * 읽어야한다. 배포판에 컴파일 된 방식에 차이가있는 것 같지만, 소스는'C'이다. 소스를보고 싶다면 내 대답에서 repo에 대한 링크를 확인하십시오. –
zjm : 비공개 ('_ *') 모듈을 직접 사용하지 말고 http://docs.python.org/library/functools.html#functools.partial의 functools.partial 설명서를 참조하십시오. –
+1 (')로 접두사가 붙은 (세미) 개인 모듈을 사용하지 않는 경우. –