3
작성 파이썬 모듈의 속성, 그래서 내가 그랬어 :상수 정수 내가 <a href="https://docs.python.org/3.3/extending/extending.html" rel="nofollow noreferrer">https://docs.python.org/3.3/extending/extending.html</a></p> <p>지금은 그 모듈의 정수 상수를 갖고 싶어에 따라 C에서 파이썬 확장 모듈을 구현 C
module= PyModule_Create(&myModuleDef);
...
PyModule_AddIntConstant(module, "VAR1",1);
PyModule_AddIntConstant(module, "VAR2",2);
...
return module;
이를 공장. 하지만, 파이썬에서 "상수를"수정 내가 __setattr__
과부하하려고했으나이 기능이 할당에 호출되지 않습니다
import myModule
myModule.VAR1 = 10
같은 수 있습니다.
해결책이 있습니까?
C는 임의 유형의 기호 상수를 지원하지 않습니다. C++이 아닙니다. 열거 형 상수 만 가능하지만 항상 상수입니다. 그리고 파이썬에서는 객체의 세터를 변경할 수 있습니다. 그러나 일반적으로 사람은 노력을 피하고 국제 대회에 의존합니다. – Olaf
@Olaf - 참이지만이 경우 OP는 파이썬에서 전혀 불가능한 리바 인딩을 방지하려고합니다. 그리고 파이썬 정수는 모두 불변 객체이기 때문에'__setattr__'은 중요하지 않습니다. – StoryTeller
예, 모든 정상적인 오버 헤드가있는 "정상적인"클래스가 필요합니다. 그래서 대회에 의존하는 것에 동의합니다 (내 의견에 분명하지 않은 경우). – Olaf