파이썬 3.1 문제
또는 노르웨이 문제의 변형
짧은 버전: YAML에서 버전 번호를 따옴표로 묶습니다.
노르웨이 문제
Norway problem은 이것을 YAML에 넣을 때입니다.
countries:
- GB
- IE
- FR
- DE
- NO
그러나 이것을 꺼내십시오.
>>> import yaml
>>> with open("countries.yml") as f:
... yaml.safe_load(f)
...
{'countries': ['GB', 'IE', 'FR', 'DE', False]}
😱
노르웨이 수정
따옴표 사용:
countries:
- "GB"
- "IE"
- "FR"
- "DE"
- "NO"
>>> with open("countries.yml") as f:
... yaml.safe_load(f)
...
{'countries': ['GB', 'IE', 'FR', 'DE', 'NO']}
🇳🇴 ✅
파이썬 3.1 문제
비슷한 문제가 Python 3.10 comes out 2021년 10월 Python 커뮤니티에 영향을 미칠 것입니다.
왜요?
예를 들어 CI 테스트 매트릭스 구성에서 YAML에 3.10
가 추가되면 부동 소수점으로 해석됩니다. 이것:
python-version: [
3.6,
3.7,
3.8,
3.9,
3.10,
pypy3,
]
다음과 같이 바뀝니다.
>>> import yaml
>>> with open("versions.yml") as f:
... yaml.safe_load(f)
...
{'python-version': [3.6, 3.7, 3.8, 3.9, 3.1, 'pypy3']}
CI 실패! 아니다2009! 파이썬 3.1을 찾을 수 없습니다!
😱
이와 관련하여 3.10-dev
따옴표 없이는 문자열로 해석되기 때문에 작동합니다. 그러나 -dev
를 삭제할 때 3.10
는 부동 소수점으로 해석됩니다.
파이썬 3.10 수정
버전 번호는 부동 소수점이 아닌 문자열입니다. 따옴표 사용:
python-version: [
"3.6",
"3.7",
"3.8",
"3.9",
"3.10",
"pypy3",
]
>>> import yaml
>>> with open("versions.yml") as f:
... yaml.safe_load(f)
...
{'python-version': ['3.6', '3.7', '3.8', '3.9', '3.10', 'pypy3']}
🐍 ✅
또한보십시오
flake8-2020은 Python 3.10 및 sys.version
및 sys.version_info
를 사용할 때 버전 번호의 길이에 대한 가정으로 인해 발생하는 기타 버그를 찾는 데 유용한 Flake8 플러그인입니다.
Reference
이 문제에 관하여(파이썬 3.1 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/hugovk/the-python-3-1-problem-85g
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
countries:
- GB
- IE
- FR
- DE
- NO
>>> import yaml
>>> with open("countries.yml") as f:
... yaml.safe_load(f)
...
{'countries': ['GB', 'IE', 'FR', 'DE', False]}
countries:
- "GB"
- "IE"
- "FR"
- "DE"
- "NO"
>>> with open("countries.yml") as f:
... yaml.safe_load(f)
...
{'countries': ['GB', 'IE', 'FR', 'DE', 'NO']}
python-version: [
3.6,
3.7,
3.8,
3.9,
3.10,
pypy3,
]
>>> import yaml
>>> with open("versions.yml") as f:
... yaml.safe_load(f)
...
{'python-version': [3.6, 3.7, 3.8, 3.9, 3.1, 'pypy3']}
python-version: [
"3.6",
"3.7",
"3.8",
"3.9",
"3.10",
"pypy3",
]
>>> import yaml
>>> with open("versions.yml") as f:
... yaml.safe_load(f)
...
{'python-version': ['3.6', '3.7', '3.8', '3.9', '3.10', 'pypy3']}
Reference
이 문제에 관하여(파이썬 3.1 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hugovk/the-python-3-1-problem-85g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)