ืืืึทื ื ืืืจ ืืจืขื ืืขื ืฆื ืืืื ืืคืืขืจืงืืึทืืงืืื ืืขืจ ืขืจืฉืืขืจ ืืืื ืคืื ืืขืจ ืืืืขืจืืขืฆืื ื ืคืื ืืขื ืืึทืืขืจืืึทื ืืืขืื ืืื ืืจืึธืคึผืืึธืงืก ืืืื ืืื ืืืคึผ ืงืึธื ืืจืึธื ืคืื ืคึผืืืืึธื ืงืึธื.
ืืจืึธืคึผืืึธืงืก ืฉืจืืืื ืึท ืคึผืืึทืฅ ืืื ืคึผืืืืึธื. ืืึธืก ืืื ืึท ืฉืคึผืจืึทื ืืืึธืก ืืืจ ื ืืฆื ืืึธืจ ืืืืืืื, ืืืืืข ืคึฟืึทืจ ืฆืืจืืง-ืขื ื ืืึทืืื ืื ืืก ืืื ืืขืกืงืืึทืคึผ ืงืืืขื ื ืึทืคึผืืึทืงืืืฉืึทื ื. ืืืจ ืืืื ื ืืฆื Go, TypeScript ืืื Rust ืึท ืคึผืืึทืฅ, ืึธืืขืจ Python ืืื ืืื ืืืขืจ ืืืืคึผื ืฉืคึผืจืึทื. ืงืึธื ืกืืืขืจืื ื ืืื ืืืขืจ ืืืึธื, ืืื ืืืจ ืืขื ืขื ืืขืจืขืื ืืืขืื ืืืืืึทื ื ืคืื ืฉืืจืืช ืคืื ืคึผืืืืึธื ืงืึธื, ืขืก ืคืืจืงืขืจื ืืืืก ืึทื ืื ืืื ืึทืืืฉ ืืืืคึผืื ื ืคืื ืึทืืึท ืงืึธื ืึทื ื ืขืกืึทืกืขืจืึทืื ืงืึธืืคึผืืืฆืืจื ืืืึทื ืคืืจืฉืืื ื ืืื ืื ืืขืืืืื ืฆื ืขืืขืก ืืืืจืงื ืึทืจืืขื ืคึผืจืึธืืืึทืงืืืืืืื. ืฆื ืคืึทืจืืื ืขืจื ืืขื ืคึผืจืึธืืืขื, ืืืจ ืืึธืื ืื ืืขืืืืื ืฆื ืืืกืืขืืืืืึทื ืืืขืจืืึทื ื ืืื ืืืขืจ ืงืึธื ืฆื ืกืืึทืืืง ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ื ืืฆื mypy. ืืึธืก ืืื ืืืกืืึธืืข ืื ืืขืจืกื ืคืึธืืงืก ืกืืึทื ืืึทืืึธื ืข ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืกืืกืืขื ืคึฟืึทืจ ืคึผืืืืึธื. Mypy ืืื ืึทื ืึธืคึฟื ืืงืืจ ืคึผืจืืืขืงื, ืื ืืืืคึผื ืืขืืืขืืึธืคึผืขืจืก ืึทืจืืขื ืืื ืืจืึธืคึผืืึธืงืก.
ืืจืึธืคึผืืึธืงืก ืืื ืืขืืืขื ืืืื ืขืจ ืคืื ืื ืขืจืฉืืขืจ ืงืึธืืคึผืึทื ืืขืก ืฆื ืื ืกืืจืืืขื ื ืกืืึทืืืง ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืืื ืคึผืืืืึธื ืงืึธื ืืื ืืขื ืืืึธื. Mypy ืืื ืืขื ืืฆื ืืื ืืืืื ืืขืจ ืคืื ืคึผืจืึทืืืฉืขืงืก ืื ืืขื. ืืขื ืืขืฆืืึทื ืงืึทืื ืืืึทืก ืืื, ืืื ืืื ืืึธืื, "ืืขืกืืขื ืืื ืฉืืึทืื." ืืืจ ืืึธืื ืึท ืืึทื ื ืืืขื ืฆื ืืึทืงืืืขื ืฆื ืืื ืืืจ ืืขื ืขื ืืืฆื. ืืืืค ื ืฐืข ื ืืฒื ืข ื ืืขืฐืข ื ื ืก ื ืืื ึพ ืืขืืื ืืขื ืข ืืื ืืขืจื ืขืืื ืืข ื ืื ื ืืืจืืืขืคืืืขื ืข ืขืงืกืคืขืจืืืขื ืื . ืืขืจ ืคึผืึธืกืื ืงืึธืืืขืจืก ืื ืืขืฉืืืืข ืคืื โโืกืืึทืืืง ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืืื ืคึผืืืืึธื, ืคึฟืื ืืืื ืฉืืืื ืขืจืืืง ืึธื ืืืื ืืื ืึท ืืืื ืคืื ืืืื ืคืึธืจืฉืื ื ืคึผืจืืืขืงื, ืืื ืืขื ืืืื ืืืงื ืืึธื, ืืืขื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืืื ืืืคึผ ืืื ืฅ ืืึธืื ืืืขืจื ืืขืืืืื ืืืขื ืคึฟืึทืจ ืงืึทืื ืืืึทืก ืืขืืืขืืึธืคึผืขืจืก ืืืึธืก ืฉืจืืึทืื ืืื ืคึผืืืืึธื. ืื ืืขืงืึทื ืืืึทืื ืืขื ืขื ืืืฆื ืืขืฉืืืฆื ืืืจื ืคืืืข ืืืฉืืจืื ืึทืืึท ืืื IDEs ืืื ืงืึธื ืึทื ืึทืืืืขืจืก.
โ
ืคืืจืืืืก ืืื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ื ืืืืืง?
ืืืื ืืืจ ืืึธื ืืืฅ ืืขืืืืื ื ืืื ืึทืืืงืึทืืื ืืืืคึผื ืคึผืืืืึธื, ืืืจ ืงืขื ืืึธืื ืขืืืขืืข ืฆืขืืืฉืื ื ืืืขืื ืืืึธืก ืขืก ืืื ืืขืืืขื ืึทืืึท ืึท ืืึทืจืขืจืึทื ืึทืจืื ืกืืึทืืืง ืืืืคึผืื ื ืืื ืืืคึผื ืืขืฆืื ืก. ืึธืืขืจ ืืคึฟืฉืจ ืืืจ ืืื Python ืืืืงื ืืืืึทื ืคืื ืืืึทื ืืื ืึทืืืฉ ืืืืคึผืื ื, ืืื ืืืึธืก ืืื ืืขืฉืขืขื ืืฉ ื ืึธืจ ืืืขืจืงืขืจื ืืืจ. ืืขืจ ืฉืืืกื ืฆื ืื ืืืขืจื ืคืื ืกืืึทืืืง ืืืืคึผืื ื ืืื ืื ืืืึธื ืคืื ืื ืกืึทืืืฉืึทื ื: ืื ืืจืขืกืขืจืข ืืืื ืคึผืจืืืขืงื, ืื ืืขืจ ืืืจ ืืึทืจ ืฆื ืกืืึทืืืง ืืืืคึผืื ื, ืืื ืืื ืื ืกืืฃ, ืื ืืขืจ ืืืจ ืืึทืงืข ืืึทืจืคึฟื ืขืก.
ืจืขืื ืื ื ืืขืืืืกืขืจ ืคืจืืืขืงื ืืื ืืขืจืืจืืืื ืื ืืจืืืก ืคืื ืฆืขื ืืืืืขืจ ืืืืื ืืขืจ ืฉืืจืืช, ืืื ืขืก ืืื ืืื ืืจืืืกืืขืฉืืขืื ืื ืขืืืืืข ืคืจืืืจืืืขื ืืจืืขืื ืืขืจืืืฃ. ืืืจ ืืืื ืืื ืึท ืขื ืืขื ืคึผืจืืืขืงื, ืืืืืจื ืืืืฃ ืืื ืืืขืจ ืืขืจืคืึทืจืื ื, ืืืจ ืงืขื ืขื ืืึธืื ืึทื ืฆื ืคึฟืึทืจืฉืืืื ืืืึทื ืงืึธื ืืืขื ืืืื ืืขืจ ืฉืืืกื ืฆื ืืึทืืื ืืขืืืขืืึธืคึผืขืจืก ืคึผืจืึธืืืงืืืื. ืึธื ืืืคึผ ืึทื ืึทืืืืฉืึทื ื, ืขืก ืงืขื ืืืื ืฉืืืขืจ ืฆื ืจืขืืขื ืขื ืืืืก, ืืืฉื, ืืืึธืก ืึทืจืืืืขื ืื ืฆื ืคืึธืจื ืฆื ืึท ืคึฟืื ืงืฆืืข, ืึธืืขืจ ืืืึธืก ืืืืคึผืก ืึท ืคึฟืื ืงืฆืืข ืงืขื ืขื ืฆืืจืืงืงืืืขื. ืืึธ ืืขื ืขื ืืืคึผืืฉ ืคึฟืจืืื ืืืึธืก ืืขื ืขื ืึธืคื ืฉืืืขืจ ืฆื ืขื ืืคึฟืขืจื ืึธื ื ืืฆื ืืืคึผ ืึทื ืึทืืืืฉืึทื ื:
- ืงืขื ืขื ืืขื ืคึฟืื ืงืฆืืข ืฆืืจืืงืงืืืขื
None
? - ืืืึธืก ืืึธื ืืขืจ ืึทืจืืืืขื ื ืืืื?
items
? - ืืืึธืก ืืื ืืขืจ ืืืคึผ ืคืื ืึทืืจืืืืื
id
:int
ืืื ืืืก,str
, ืึธืืขืจ ืืคึฟืฉืจ ืขืืืขืืข ืื ืื ืืืคึผ? - ืืึธื ืืขื ืึทืจืืืืขื ื ืืืื ืึท ืจืฉืืื? ืืื ืขืก ืืขืืืขื ืฆื ืคืึธืจื ืึท ืืืคึผืืข ืฆื ืขืก?
ืืืื ืืืจ ืงืืง ืืื ืื ืคืืืืขื ืืข ืืืคึผ-ืึทื ื ืึธืืืืืื ืงืึธื ืกื ืืคึผืึทื ืืื ืคึผืจืืืืจื ืฆื ืขื ืืคึฟืขืจื ืขื ืืขื ืคึฟืจืืื, ืขืก ืืืจื ืก ืืืืก ืึทื ืืึธืก ืืื ืื ืกืืืคึผืืึทืกื ืึทืจืืขื:
class Resource:
id: bytes
...
def read_metadata(self,
items: Sequence[str]) -> Dict[str, MetadataItem]:
...
read_metadata
ืงืืื ื ืืฉื ืฆืืจืืงNone
, ืืื ื ืื ืฆืืจืืงืงืืืขื ืืืคึผ ืืื ื ืืฉืOptional[โฆ]
.- ืึทืจืืืืขื ื
items
ืืื ืึท ืกืืงืืืึทื ืก ืคืื ืฉืืจืืช. ืขืก ืงืขื ืขื ื ืื ืืืื ืืืขืจืืืืื ืจืึทื ืืึทืืื. - ืึทืืจืืืืื
id
ืืื ืึท ืฉืืจืืงื ืคืื ืืืืขืก.
ืืื ืึทื ืืืืขืืืขืจ ืืืขืื, ืืืึธืื ืืขื ืืขืจืืืึทืจืื ืึทื ืึทืืข ืึทืืึท ืกืึทืืึทืืืื ืืืึธืื ืืืื ืืืกืงืจืืืื ืืื ืื ืืขืืืื-ืืื ืืึทืงืืืืขื ืืืืฉืึทื (ืืึธืงืกืืจืื ื). ืึธืืขืจ ืืขืจืคืึทืจืื ื ืืื ืึท ืคึผืืึทืฅ ืคืื ืืืืฉืคืืื ืคืื ืื ืคืึทืงื ืึทื ืึทืืึท ืืึทืงืืืืขื ืืืืฉืึทื ืืื ืึธืคื ื ืืฉื ืืืืขืจืงื ืืื ืื ืงืึธื ืืื ืืืึธืก ืืืจ ืืึธืื ืฆื ืึทืจืืขืื. ืืคืืื ืืืื ืึทืืึท ืืึทืงืืืืขื ืืืืฉืึทื ืืื ืคืึธืจืฉืืขืื ืืื ืื ืงืึธื, ืืขื ืงืขื ื ืืฉื ืจืขืืขื ืขื ืืืืฃ ืืืึทื ืึทืืกืึธืืื ืจืืืืืง. ืื ืืึทืงืืืืขื ืืืืฉืึทื ืงืขื ืขื ืืืื ืืืืื, ืืืคึผืื ืงืืืขื ืืื ืึธืคื ืคึฟืึทืจ ืืืกืึทื ืืขืจืกืืึทื ืืื ืื. ืืื ืืจืืืก ืืืื ืึธืืขืจ ืืจืืืก ืคึผืจืึทืืืฉืขืงืก, ืืขื ืคึผืจืึธืืืขื ืงืขื ืืืื ืืึธืจ ืึทืงืืืข.
ืืฉืขืช ืคึผืืืืึธื ืืงืกืขืื ืืื ืื ืคืจื ืึธืืขืจ ืื ืืขืจืืืืืื ืกืืึทืืขืก ืคืื ืคึผืจืึทืืืฉืขืงืก, ืืื ืขืืืขืืข ืคืื ื ืืฆืืื ืคึผืจืึทืืืฉืขืงืก ืืื ืงืึธืืคึผืึทื ืืขืก ืืืึธืก ื ืืฆื ืคึผืืืืึธื ืงืขื ืืืื ืึท ืืืืืึทื ืงืฉืื: "ืืึธื ืืืจ ืจืืจืืื ืึทืืฅ ืืื ืึท ืกืืึทืืืงืื ืืืืคึผื ืฉืคึผืจืึทื?".
ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืกืืกืืขืืขื ืืื mypy ืกืึธืืืืข ืื ืืืืื ืคึผืจืึธืืืขื ืืืจื ืฆืืฉืืขืื ืื ืืขืืืขืืึธืคึผืขืจ ืึท ืคืึธืจืืึทื ืฉืคึผืจืึทื ืคึฟืึทืจ ืืืกืงืจืืืืื ื ืืืืคึผืก, ืืื ืงืึธื ืืจืึธืืืจื ืึทื ืืืคึผ ืืขืงืืขืจืืืฉืึทื ื ืฉืืืืขื ืืื ืื ืคึผืจืึธืืจืึทื ืืืคึผืืึทืืขื ืืืืฉืึทื (ืืื, ืึธืคึผืืืึธื ืึทืืื, ืงืึธื ืืจืึธืืืจื ืคึฟืึทืจ ืืืืขืจ ืขืงืืืกืืขื ืฅ). ืืื ืึทืืืขืืืื, ืืืจ ืงืขื ืขื ืืึธืื ืึทื ืื ืกืืกืืขืืขื ืฉืืขืื ืฆื ืืื ืืืขืจ ืืึทืืืึทืืืงืื ื ืขืคึผืขืก ืืื ืงืขืจืคืึทืื ืึธืคึผืืขืฉืืขืื ืืึทืงืืืืขื ืืืืฉืึทื.
ืื ื ืืฆื ืคืื ืึทืืึท ืกืืกืืขืืขื ืืื ืื ืืขืจืข ืึทืืืืึทื ืืืืืฉืื, ืืื ืืื ืืขื ืขื ืฉืืื ืืึธืจ ื ืื-ื ืืืืืืึทื:
- ืื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืกืืกืืขื ืงืขื ืขื ืืขืืขืงื ืขืืืขืืข ืงืืืื (ืืื ื ืืฉื ืึทืืื ืงืืืื) ืขืจืจืึธืจืก. ื ืืืคึผืืฉ ืืืึทืฉืคึผืื ืืื ืืืขื ืืื ืคืึทืจืืขืกื ืฆื ืคึผืจืึธืฆืขืก ืึท ืืืขืจื
None
ืึธืืขืจ ืขืืืขืืข ืื ืืขืจืข ืกืคึผืขืฆืืขื ืฆืืฉืืึทื ื. - ืงืึธื ืจืขืคืึทืงืืึธืจืื ื ืืื ืืืืขืจ ืกืืืคึผืืึทืคืืื ืืืืึทื ืื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืกืืกืืขื ืืื ืึธืคื ืืืืขืจ ืคึผืื ืืืขื ืืืขืื ืืืึธืก ืงืึธื ืืึทืจืฃ ืืืื ืืฉืืื ืืืฉื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืืืจ ืืึธื ื ืื ืืึทืจืคึฟื ืฆื ืืึธืคึฟื ืคึฟืึทืจ 100% ืงืึธื ืงืึทืืืขืจืืืืฉ ืืื ืืขืกืฅ, ืืืึธืก, ืืื ืงืืื ืคืึทื, ืืื ืืืืฉืึทืืืึทืื ื ืื ืคืืืึทืืึทื. ืืืจ ืืึธื ื ืื ืืึทืจืคึฟื ืฆื ืืขืืื ืืื ืื ืืืคืขื ืืฉื ืคืื ืื ืึธื ืืืืื ืฉืคึผืืจ ืฆื ืืขืคึฟืื ืขื ืื ืกืืื ืคืื ืืขื ืคึผืจืึธืืืขื.
- ืืคืืื ืืืืฃ ืืจืืืก ืคึผืจืึทืืืฉืขืงืก, Mypy ืงืขื ืขื ืึธืคื ืืืจืืคืืจื ืคืื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืืื ืึท ืืจืึธืืฆืึธื ืคืื ืึท ืจืืข. ืืื ืื ืืืจืืคืืจืื ื ืคืื ืืขืกืฅ ืืืืฉืึทืืืึทืื ื ืขืื ืืขื ืก ืคืื ืกืขืงืื ืืขืก ืึธืืขืจ ืืคืืื ืืื ืื. ืื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืกืืกืืขื ืืื ืื ืคึผืจืึธืืจืึทืืืกื ืจืขืืข ืืึทืืขืจืงืื ืืขื ืืื ืึทืืึทืื ืืื ืฆื ืืึธื ืืืื ืึทืจืืขื ืคืึทืกืืขืจ. ืขืจ ื ืื ืืขืจ ืืึทืจืคึฟื ืฆื ืฉืจืืึทืื ืฉืืืึทื ืืื ืฉืืืขืจ ืฆื ืืืึทื ืขื ืึทืคึผืึทืจืึทื ืืขืกืฅ ืืืึธืก ืคืึทืจืืืึทืื ืคืึทืงืืืฉ ืขื ืืืืื ืืื ืืึทืงืก ืืื ืคึผืึทืืฉืึทื ื ืึธืจ ืฆื ืืึทืงืืืขื ืงืึธื ืคึผืจืืืืจื ืจืขืืืืืึทืื ืคืึทืกืืขืจ.
IDEs ืืื ืจืขืืืงืฆืืข ืึทืืึท ืืื PyCharm ืึธืืขืจ Visual Studio Code ื ืืฆื ืื ืืึทืื ืคืื ืืืคึผ ืึทื ืึทืืืืฉืึทื ื ืฆื ืฆืืฉืืขืื ืืขืืืขืืึธืคึผืขืจืก ืืื ืงืึธื ืงืึทืืคึผืืืฉืึทื, ืืขืืช ืืืืืืืืื ื ืืื ืฉืืืฆื ืคึฟืึทืจ ืึธืคื ืืขืืืืื ื ืฉืคึผืจืึทื ืงืึทื ืกืืจืึทืงืฉืึทื ื. ืืื ืืึธืก ืืขื ืขื ื ืึธืจ ืขืืืขืืข ืคืื โโืื ืืขื ืขืคืืฅ ืคืื ืืืืคึผืื ื. ืคึฟืึทืจ ืขืืืขืืข ืคึผืจืึธืืืจืึทืืขืจื, ืึทืืข ืืขื ืืื ืืขืจ ืืืืคึผื ืึทืจืืืืขื ื ืืื ืืืืืืข ืคืื โโืืืืคึผืื ื. ืืึธืก ืืื ืขืคึผืขืก ืืืึธืก ืืขื ืขืคืืฅ ืืื ื ืึธื ืืืคึผืืึทืืขื ืืืืฉืึทื. ืืขืจ ื ืืฆื ืคืึทื ืคึฟืึทืจ ืืืืคึผืก ืืื ื ืืฉื ืืึทืจืคื ืึท ืืึทืืื ืืขืจ ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืกืืกืืขื ืืื mypy, ืืึธืืฉ ืขืก ืืึธื ืืืื ืื ืืขืืืืื ืึทื mypy ืืขืืคึผืก ืืึทืืื ืืืคึผ ืึทื ืึทืืืืฉืึทื ื ืงืึธื ืกืืกืืขื ื ืืื ืงืึธื.
ืืขืจ ืืื ืืขืจืืจืื ื ืคืื ืืืคึผื
ืื ืืขืฉืืืืข ืคืื โโืืืคึผื ืื ืืขืืืืื ืืื ืื ืืง, ืืื ืงืืืืืจืืืืฉ, ืขืืืขืืข ืืึธืจ ืืืืืขืจ ืืื ืืื ืืืื ืืขืฉืจืืื ืืจืึธืคึผืืึธืงืก. ืืื ืืื ืืขืืืขื ืื ืืืึทืืืื, ืืื ืึท ืืืื ืคืื ืืืื ืืึธืงืืึธืจืึทื ืคืึธืจืฉืื ื, ืืื ืืขืจ ืคืึทืจืืืื ืืงืื ื ืคืื ืกืืึทืืืงืื ืืืืคึผื ืืื ืืื ืึทืืืฉ ืฉืคึผืจืึทืื. ืืื ืืื ืืขืืืขื ืื ืกืคึผืืืขืจื ืืืจื ืึทื ืึทืจืืืงื ืืืขืื ืื ืงืจืึทืืขื ืืึทื ืืืืคึผืื ื ืืืจื Jeremy Siek ืืื Walid Taha, ืืื ืืืจื ืื ืืืืคึผื ืจืึทืงืขื ืคึผืจืืืขืงื. ืืื ืืึธื ืืขืคืจืืืืื ืฆื ืืขืคึฟืื ืขื ืืืขืื ืฆื ื ืืฆื ืื ืืขืืืข ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื ืคึฟืึทืจ ืคืึทืจืฉืืื ืคึผืจืึทืืืฉืขืงืก - ืคืื ืงืืืื ืกืงืจืืคึผืก ืฆื ืงืึธื ืืึทืกืขืก ืืืึธืก ืืืฉืืืื ืคืื ืคืืืข ืืืืืึทื ื ืคืื ืฉืืจืืช. ืืขืจืืฒึท ืืึธื ืืื ืืขืืืึธืื ืคึฟืึทืจืืืืขืจื, ืึทื ืืื ืึท ืคึผืจืึธืืขืงื ืคึฟืื ืงืืื ืคึฟืึทืจื ืขื, ืืึทืจืฃ ืืขื ื ืืฉื ืืึทืื ืฆื ืืจืืืกืข ืคึผืฉืจืืช. ืึท ืืืืืืืง ืืืื ืคืื ืึทืืข ืืขื ืืื ืืขืืืขื ืืขืจ ืืขืืึทื ืง ืคืื ืืืกืืขืืืืืึทื ืืึทื ืคืื ืึท ืึทื ืืืืคึผื ืคึผืจืึธืืืึทืืืืคึผ ืคึผืจืืืขืงื ืฆื ืึท ืคืืืฉืืขื ืืืง ืืขืกืืขื ืกืืึทืืืงืื ืืืืคึผื ืคืึทืจืืืง ืคึผืจืึธืืืงื. ืื ืืขื, ืื ืืขืืื ืงืขื ืืขื ืขื ืืึทืจืืขืื ืืขื ืืืขื ืคึฟืึทืจ ืืขืืขืื, ืึธืืขืจ ืืื 2010 ืขืก ืืื ืืขืืืขื ืึท ืคึผืจืึธืืืขื ืืืึธืก ืืื ื ืึธื ืึทืงืืืืืื ืืืกืคืึธืจืฉื.
ืืืึทื ืึธืจืืืื ืขื ืึทืจืืขื ืืื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืืื ื ืืฉื ืึทืืืขื ืืืึท ืคึผืืืืึธื. ืึทื ืฉืืึธื, ืืื ืืขืืืืื ื ืึท ืงืืืื "ืืึธืืืืืื" ืฉืคึผืจืึทื
def Fib(n as Int) as Int
if n <= 1
return n
else
return Fib(n - 1) + Fib(n - 2)
end
end
ื ืืฆื ืึท ืกืืืคึผืืึทืคืืื ืืขืืืืจื ืฉืคึผืจืึทื ืืื ืึท ืคึผืจืึธืกื ืฆืืืึทื ื ืืขื ืืฆื ืืื ืืืืกื ืฉืืคืืืขืืข ืคืึธืจืฉืื ื. ืืึธืก ืืื ืึทืืื, ื ืื ืงืืขื ืกืืขืจ ืืืืึทื ืขืก ืึทืืึทืื ืืืจ ืฆื ืืขืฉืืืื ื ืืืจืืคืืจื ืืงืกืคึผืขืจืึทืืึทื ืฅ, ืืื ืืืื ืจืขืื ืฆื ืืขื ืคืึทืงื ืึทื ืืืึธืก ืืื ืืึธืจื ืืฉื ืฆื ืืึธื ืืื ืื ืืขืจื ืขื ืงืขื ืขื ืืืื ืืืืื ืืืื ืึธืจืืจื. ืคืึทืงืืืฉ-ืืืขืื ืคึผืจืึธืืจืึทืืืื ื ืฉืคืจืึทืื ืืขื ื ืฆื ืืืื ืืจืืืก-ืืืึธื ืืขืจืฉืืื ืื ืืขื ืืื ืงืึธืืคึผืืขืงืก ืืืคึผืืึทืืึทื ืฅ, ืืื ืืึธืก ืกืืึธืื ืึทืจืึธืคึผ ืขืงืกืคึผืขืจืืืขื ืืึทืืืึธื. ืึธืืขืจ, ืึทืืข ืจืขืืืืืึทืื ืืืืืจื ืืืืฃ ืึท ืกืืืคึผืืึทืคืืื ืฉืคึผืจืึทื ืงืืงื ืึท ืืืกื ืกืึทืกืคึผืืฉืึทืก, ืืืืึทื ืืื ืืืงืืืขื ืื ืจืขืืืืืึทืื, ืืขืจ ืคืึธืจืฉืขืจ ืงืขื ืืึธืื ืืงืจืื ืืขืืืขื ืืึทืืจืึทืืืื ื ืืืืืืืง ืคึฟืึทืจ ืื ืคึผืจืึทืงืืืฉ ื ืืฆื ืคืื ืฉืคึผืจืึทืื.
ืืืึทื ืืืคึผ ืืฉืขืงืขืจ ืคึฟืึทืจ ืึทืืึธืจืข ืืื ืืขืืืขื ืืืืขืจ ืคึผืจืึทืืึทืกืื ื, ืึธืืขืจ ืืื ืืขืืืืื ืฆื ืคึผืจืืืืจื ืขืก ืืืจื ืขืงืกืคึผืขืจืืืขื ืืื ื ืืื ืคืึทืงืืืฉ ืงืึธื, ืืืึธืก, ืืืจ ืืื ืืึธืื, ืืื ื ืืฉื ืืขืฉืจืืื ืืื ืึทืืึธืจืข. ืฆืื ืืืืง ืคึฟืึทืจ ืืืจ, ืื ืึทืืึธืจืข ืฉืคึผืจืึทื ืืื ืืึทืจืืขืื ืืืืืจื ืืืืฃ ืื ืืขืืืข ืืขืืื ืงืขื ืืื ืคึผืืืืึธื. ืขืก ืืื ืืขืืืขื ืืจืื ื ืืขื ืื ืฆื ืจืืืืืง ืื ืืืคึผืืฉืขืงืขืจ ืึทืืื ืึทื ืขืก ืงืขื ืึทืจืืขืื ืืื ืคึผืืืืึธื ืก ืกืื ืืึทืงืก ืืื ืกืขืืึทื ืืืงืก. ืืึธืก ืขืจืืืืื ืืื ืื ืฆื ืคึผืจืืืืจื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืืื ืขืคึฟืขื ืขื ืืงืืจ ืคึผืืืืึธื ืงืึธื. ืืื ืึทืืืฉืึทื, ืืื ืืขืฉืจืืื ืึท ืืจืึทื ืกืคึผืืืขืจ ืฆื ืืขืจ ืงืึธื ืืขืฉืจืืื ืืื ืึทืืึธืจืข ืฆื ืคึผืืืืึธื ืงืึธื ืืื ืืขืืืืื ื ืขืก ืฆื ืืืืขืจืืขืฆื ืืืื ืืืคึผืืฉืขืงืขืจ ืงืึธื. ืืืฆื ืืื ืืื ืึท ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืกืืกืืขื ืืขืฉืจืืื ืืื ืคึผืืืืึธื ืืืึธืก ืฉืืืฆื ืึท ืกืึทืืกืขื ืคืื ืคึผืืืืึธื, ืขืืืขืืข ืืื ืคืื ืึทื ืฉืคึผืจืึทื! (ืืืืขืจ ืึทืจืงืึทืืขืงืืฉืขืจืึทื ืืืกืืืฉืึทื ื ืืืึธืก ืืึธืื ืึท ืืื ืขื ืคึฟืึทืจ Alore ืืขื ืขื ืฉืืืึทื ืคึผืึทืกืืง ืคึฟืึทืจ Python, ืืื ืืึธืก ืืื ื ืึธื ืืืืขืจืงื ืืื ืคึผืึทืจืฅ ืคืื ืื Mypy ืงืึธืืขืืึทืกืข.)
ืืื ืคืึทืงื, ืื ืฉืคึผืจืึทื ืืขืฉืืืฆื ืืืจื ืืืื ืืืคึผ ืกืืกืืขื ืงืขื ื ืืฉื ืืึทื ืฅ ืืืื ืืขืจืืคื ืคึผืืืืึธื ืืื ืืขื ืคืื ื: ืขืก ืืื ืืขืืืขื ืึท ืืืึทืจืืึทื ื ืคืื ืคึผืืืืึธื ืจืขืื ืฆื ืขืืืขืืข ืืืืืืืืฉืึทื ื ืคืื ืื ืคึผืืืืึธื 3 ืืืคึผ ืึทื ืึทืืืืฉืึทื ืกืื ืืึทืงืก.
ืขืก ืืขืงืืงื ืืื ืึท ืืขืืืฉ ืคืื Java ืืื Python:
int fib(int n):
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
ืืืื ืขืจ ืคืื ืืืื ืืขืืื ืงืขื ืืื ืืขืจ ืฆืืื ืืื ืืขืืืขื ืฆื ื ืืฆื ืืืคึผ ืึทื ืึทืืืืฉืึทื ื ืฆื ืคึฟืึทืจืืขืกืขืจื ืคืึธืจืฉืืขืืื ื ืืืจื ืงืึทืืคึผืืืืื ื ืืขื ืืื ืคืื ืคึผืืืืึธื ืฆื C, ืึธืืขืจ ืืึธืืขืจ JVM bytecode. ืืื ืืขืงืืืขื ืฆื ืืขืจ ืืื ืข ืคืื โโืฉืจืืืื ืึท ืงืึทืืคึผืืืืขืจ ืคึผืจืึธืืืึทืืืืคึผ, ืึธืืขืจ ืืื ืคืืจืืืื ืืขื ืืขืืึทื ืง, ืืืืึทื ืืืคึผ ืงืึธื ืืจืึธืืืจืื ื ืืื ืืขืงืืงื ืืึทื ืฅ ื ืืฆืืง.
ืืื ืขื ืืืขื ืคึผืจืืืขื ืืื ื ืืืื ืคึผืจืืืขืงื ืืื PyCon 2013 ืืื ืกืึทื ืืึท ืงืืึทืจืึท. ืืื ืืึธื ืืืื ืืขืจืขืื ืืืขืื ืืขื ืืื Guido van Rossum, ืืขืจ ืืืืืึทืจืฆืืงืขืจ ืคึผืืืืึธื ืืืงืืึทืืึธืจ ืคึฟืึทืจ ืืขืื. ืขืจ ืงืึทื ืืืื ืกื ืืืจ ืฆื ืคืึทืื ืืืื ืืืืื ืกืื ืืึทืงืก ืืื ืฉืืขืงื ืืื ืื ื ืึธืจืืึทื ืคึผืืืืึธื 3 ืกืื ืืึทืงืก. Python 3 ืฉืืืฆื ืคืื ืงืฆืืข ืึทื ืึทืืืืฉืึทื ื, ืึทืืื ืืืื ืืืืฉืคึผืื ืงืขื ืืืื ืจืืจืืืึทื ืืื ืืขืืืืื ืืื ืื, ืจืืืึทืืืื ื ืืื ืึท ื ืึธืจืืึทื ืคึผืืืืึธื ืคึผืจืึธืืจืึทื:
def fib(n: int) -> int:
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
ืืื ืืื ืฆื ืืึทืื ืขืืืขืืข ืงืึทืืคึผืจืึทืืืืืื (ืขืจืฉืืขืจ ืคืื ืึทืืข, ืืื ืืืืื ืฆื ืืึธื ืึทื ืืื ืื ืืืขื ืืื ืืืื ืืืืื ืกืื ืืึทืงืก ืคึฟืึทืจ ืืขื ืืืืขืจ ืกืืื). ืืื ืืึทืืื ืืขืจ, Python 3.3, ืื ืืขืฆืืข ืืืขืจืกืืข ืคืื โโโโืื ืฉืคึผืจืึทื ืืื ืืขืจ ืฆืืื, ืืื ื ืืฉื ืฉืืืฆื ืืืขืจืืึทืืึทื ืึทื ืึทืืืืฉืึทื ื. ืืื ืืืกืงืึทืกื ืืื Guido ืืืจื E- ืคึผืึธืกื ืคืึทืจืฉืืื ืคึผืึทืกืึทืืืืึทืืื ืคึฟืึทืจ ืกืื ืืึทืงืืืง ืคึผืืึทื ืคืื ืึทืืึท ืึทื ืึทืืืืฉืึทื ื. ืืืจ ืืึทืฉืืึธืกื ืฆื ื ืืฆื ืืืคึผ ืืึทืืขืจืงืื ืืขื ืคึฟืึทืจ ืืืขืจืืึทืืึทืื. ืืึธืก ืืึธื ืืขืืื ื ืืขื ืืืขื ืฆืื, ืึธืืขืจ ืืื ืืขืืืขื ืึท ืืืกื ืงืึทืืืขืจืกืึทื (Python 3.6 ืืื ืืื ืื ืึท ื ืืกืขืจ ืกืื ืืึทืงืก):
products = [] # type: List[str] # Eww
ืืืคึผ ืืึทืืขืจืงืื ืืขื ืืขื ืขื ืืืื ื ืืฆืืง ืฆื ืฉืืืฆื Python 2, ืืืึธืก ืืื ื ืืฉื ืืึธืื ืึท ืืขืืืื-ืืื ืฉืืืฆื ืคึฟืึทืจ ืืืคึผ ืึทื ืึทืืืืฉืึทื ื:
f fib(n):
# type: (int) -> int
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
ืขืก ืืึธื ืืื ืึทืจืืืกืืขืืืืื ืึทื ืื (ืืื ืื ืืขืจืข) ืืึทื ืื-ืึธืคืก ืืึธื ื ืื ืืึทืงืข ืขื ืื - ืื ืืขื ืขืคืืฅ ืคืื ืกืืึทืืืง ืืืืคึผืื ื ืืขื ื ืึทื ืืืืขืจื ืืึทืื ืคืืจืืขืกื ืืืขืื ืืืืื ืืงืขืจ-ืืื-ืฉืืืืืขืกืืืง ืกืื ืืึทืงืก. ืืื ื ืงืืื ืกืคึผืขืฆืืขืืข ืกืื ืืึทืงืืืง ืงืึทื ืกืืจืึทืงืฉืึทื ื ืืขื ืขื ืืขื ืืฆื ืืื ืื ืืืคึผ-ืึธืคึผืืขืฉืืขืื ืคึผืืืืึธื ืงืึธื, ืืืืืกืืื ื ืคึผืืืืึธื ืืืฉืืจืื ืืื ืงืึธื ืคึผืจืึทืกืขืกืื ื ืคึผืจืึทืกืขืกืึทื ืคืึธืจืืขืฆื ืฆื ืึทืจืืขืื ื ืึธืจืืึทืื, ืืืื ืขืก ืคืื ืืจืื ืืขืจ ืคึฟืึทืจ ืืขืืืขืืึธืคึผืขืจืก ืฆื ืืขืจื ืขื ืื ื ืืึทืข ืืขืฆืืึทื.
Guido ืืืื ืงืึทื ืืืื ืกื ืืืจ ืฆื ืคืึทืจืืื ืื ืืจืึธืคึผืืึธืงืก ื ืึธื ืืื ืืขืขื ืืืงื ืืืื ืืจืึทืืืฉืึทืืืึทื ืืขืืืก. ืืึธืก ืืื ืืื ืื ืืขืจืกื ืืฉืืงืึทืืืข ืืืื ืคืื ืื ืืืคึผื ืืขืฉืืืืข ืืืืื.
ืฆื ืคืึธืจืืขืฆื ...
ืืื ืืืืขื ืขืจ! ืืืื ืืืจ ื ืืฆื Python, ืืืืข ืืึธืื ืืื ืื ืืืขืื ืื ืืืึธื ืคืื ืคึผืจืึทืืืฉืขืงืก ืืืจ ืึทื ืืืืืงืืขื ืืื ืืขื ืฉืคึผืจืึทื.
ืืงืืจ: www.habr.com