정적으로 유형이 지정되고 컴파일된 Python 코드
6976 단어 python
유형 힌트를 사용하여 정적으로 유형이 지정된 방식으로 Python 코드를 작성하고 mypy 을 사용하여 유형 오류를 확인하고 Nuitka 을 사용하여 모든 Python을 컴파일할 수 있습니다.
따라서 두 가지를 혼합하면 정적으로 유형이 지정되고 컴파일된 Python 코드가 됩니다!
이것을 어떻게 달성할 수 있는지 봅시다.
mypy를 설치합니다.
pip install mypy
누이트카를 설치합니다.
pip install nuitka
(python3-devel을 먼저 설치해야 할 수도 있습니다.)
그게 다야. 이제 코드 작성을 시작할 수 있습니다.
예시
이름이 문자열, 연령이 정수, 직업이 문자열, 급여가 실수인 Person 클래스를 정의해 봅시다.
코드는 다음과 같습니다. main.py(또는 원하는 이름)라는 파일을 만듭니다.
class Person:
name: str
age: int
job: str
salary: float
def __init__(self, name: str, age: int, job: str, salary: float) -> None:
self.name = name
self.age = age
self.job = job
self.salary = salary
def increase_salary(self, amount: float) -> None:
self.salary += amount
def __str__(self) -> str:
return f"Hello, my name is {self.name}, I am {self.age} years old, and I am a {self.job}."
adham: Person = Person(name="Adham", age=23, job="Engineer", salary=10000)
amount: float = 5000
adham.increase_salary(amount)
print(adham)
터미널에서 "python main.py"를 실행합니다.
유형을 지정하기 위해 유형 힌트를 사용했지만 Python은 이러한 유형을 강제하지 않으며 str에 int 값을 줄 수 있으며 Python은 오류를 발생시키지 않습니다.
예를 들어 변수 금액의 값을 문자열로 변경합니다.
여기서 내 코드 편집기는 유형이 호환되지 않는다는 힌트를 주었지만 Python은 코드를 실행할 것이며 icrease_salary 메서드를 실행할 때 런타임에 오류만 발생합니다.
그렇다면 코드를 실행하지 않고 이러한 유형 오류를 잡는 방법은 무엇일까요?
이것은 mypy가 작동하는 곳입니다.
터미널에서 "mypy main.py"를 실행합니다.
mypy가 오류를 포착한 것을 볼 수 있습니다.
amount 값을 다시 5000으로 변경하고 mypy를 다시 실행하면 다음과 같은 결과가 나타납니다.
이제 코드에 유형 오류가 없다고 확신하므로 마침내 Nuitka를 사용하여 코드를 컴파일할 수 있습니다.
터미널에서 "nuitka3 main.py"를 실행합니다.
터미널에서 "./main.bin"을 실행하여 컴파일된 코드를 실행합니다.
동일한 명령에서 check를 입력하고 코드를 컴파일하는 약간 더 쉬운 방법은 "mypy main.py && nuitka3 main.py"를 실행하는 것입니다.
그러면 먼저 코드를 확인하고 올바른 경우 컴파일됩니다.
그게 다야! 이제 Python++이 있습니다!
Reference
이 문제에 관하여(정적으로 유형이 지정되고 컴파일된 Python 코드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/adhamsalama/statically-type-compile-python-code-1n1j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)