??????Java????????????????????????????????????????????????????????????ü???????????????г???????????????????????????Щ????????? ??Outside-In Java????????У??Щ??Java??????????????????????????????????????????
???????????????????Python????????Java???????????????????????????????????????????????У??????????????????????κ????????????顣???Python??????????????????Java??????????????????
????????????????????C??????????????????С????????????????????п顢????????????????????????(infix math)?????????????????????????????????????????????????? ????????????????檔????????????????????????????????????????Python?????????б??? Python??????Java??????Щ??????????????? logging ?? unittest ????????????log4j ??JUnit???????
??????????????????????????Java????????????Python?????е???????顣 ?????????????Щ????Python????? ????????????????Python??Java??????????????????Щ?????????????? ???????????????Щ?????????????Java???????
????(???????????Python????Python????????????????????????Python 3?????д???Python 2???????????????????Python 3???Щ????????
??????
?????????????ū??????????? hello world???????
??print("Hello?? world!")
??????? ??????????????? ?e???????????????????????????????????????????10???????????????????????????? Counter ????????????????????á?
????from collections import Counter
????def count_words(path):
????words = Counter()
????with open(path) as f:
????for line in f:
????for word in line.strip().split():
????words[word] += 1
????for word?? count in words.most_common(10):
????print(f"{word} x{count}")
????Python???????????????????????????????????ο???????????? ??????????????а??????????????????????д????????????????????????????д?????????????????????????????????????????????????????????????;????????????????κ?????????????????????????????????Python???????????????????{??÷???????
???????????????????????????????????????????????????Щ??????Щ??????Щ???????á?import ????????????Щ??????????????????“???Щ???????”??????塣 Python??for?????Java??for-each????????????????????????????????????def????????????з??????????????????????????????????????ò????????????????????(?????Щ???????????)??
????????????????????????? ????? with ?飬?????????Java 7??“try-with-resources” – ?????????????β????????????????????? ???????f“…”??????????????μ??????????????????????????С?
??????????! ??????????ЩPython??????? ????????????????????????????????????
???????????
??????????????????????????Python??????????????????????? ????????????У?????????????????У??????????С? ?κ?????κ???????????κ??????? ???????????????壬????????????????????塣
class Point:
????def __init__(self?? x?? y):
????self.x = x
????self.y = y
????def magnitude(self):
????return (self.x ** 2 + self.y ** 2) ** 0.5
????point = Point(3?? 4)
????print(point.x)  # 3
????print(point.magnitude())  # 5.0
????????x??y?в???ж?????????????????????????????д?????????????????????????????????????????С?????????
??????????????ù?????????????????????????????????????????????????????????????···(?e?????????)????????????(???????????)?????????????????????????????????????????????????
?????????? – Java????????????! ????κζ?????????null?????? ?????????????????????????????
???????????????????????null????????????? ???????????????????????????????????????????? – ???????? ??????????? ??????????????????????????????????????????????
????(?????????????????? Rust??????п?? – ????????????????дPython?????????????Rust???????????????????????)
?????????magnitude?????У?self.x??int??float???κ??????????????????? ?????????**??????????????+???????????? (Python?????????????????????????κ??????)??????????????????????κ???????????????????????????????
????????ζ??Python?????????; ??ж??????????????? ????????; ??ж??????????? ??????????(downcasts)????????????(upcasts)??????????????????????(escape hatches)?? ??????????????Iterable????????????????API?????List??
???????????????????????? ??????????????????????????????????????? ????????????????????????????????????????????????????κ??????????? ????API?????????????????????; ??ж???????????????????
??????????????
??????t??????????????д ?Щ???????????Щ?????????????????????????????????? ?????????????????? ?Щ???????????Щ???????????????????? ?????????????????????????????????????? ????????????????? ??????
????????????????????????? “???????”(duck typing)???????????????? “???????????????????????????????????????????????” ??????????????????????????????????????е??????????????????????????????????????????????????κθ????????????????????????м??ɡ??????????????????????????????????????á?(??????????????????????????AttributeError?????????????????????)
???????????Python???????????????е?????????????ζ???????????????????????????????????????????????Python????????????????????????????????????????????????????????JavaScript ?????????????????????????????????????????????????????????????????
????????????????????????Python ?????????????????????????????????????????????????????????????????????(?? Map)?ж?????????????????????? JavaScript ??Lua ???????????У????????????????? null ???(Java ?????? null ?)??????????????????????????????????????????????????á?
??????????????????????????????????????????????????????????????????????????????????????????????????????е??????????????????????????????????????????????????????????????????????
?????????????????????鱣??????????????飬??????????????????????????……?????д????????????????????????!?????κδ??????????????????????—??????????????????ж??У?????python????д?????????????????
??????????????
????Python ?? Java ??????????????????????????????????????????????????????????
???????????а汾?У?Java???????Щ????????????????????????????????Python??к???????????????????????????????????????Щ??????????map??reduce???????????????????????С????????????????
????????Python?????????????????????Python???????????????????????????“??????”?????????????????????????????????????????á?
????????
???????к??????Python????????λ???????????????????????????????????м?????????Python??????????????????£?Python????????????????????????????з???????????????y?????С???????????????з???????
???????????????????????д??????д???
??for word?? count in words.most_common(10):
????for??????????????????????????д?????ε??????????????? ????????????б?most_common?е???????????????飬????????鰴??????????? ?????????????????????????????????????????????? ????????????Python?з??????????????????????????????? ??Java?У????????????????????з?????????
?????κο?????????????????????? ??????????????????a??(b??c)= …?????????????????????? ????δ?????????У????*leftovers????????????κε??????????????????????????????? ????????????LISP?
??values = [5?? 7?? 9]
????head?? *tail = values
????print(head)  # 5
????print(tail)  # (7?? 9)
????Python????????????????????б???? – ??ν??“?б????” – ????????????map????????? ??????????????????????????? ?????????????????????????????????????????????????
values = [3?? 4?? 5]
????values2 = [val * 2 for val in values if val != 4]
????print(values2)  # [6?? 10]
???????????itertools????а??????????????????????????÷???
??????Python?????????????????д??????????е????????? ????yield??????????????????????????; ???????????????????? ????????????????????ú???????????????????yield??????????; ???????????????????????
??def odd_numbers():
????n = 1
????while True:
????yield n
????n += 2
????for x in odd_numbers():
????print(x)
????if x > 4:
????break
????# 1
????# 3
????# 5
???????????????????У??????????????????л???????ж?? ????????????????????????????????????????????????????檔 ????????????“???”?????????????????? ???????д??????????д????????????map??filter??
??# This is the pathlib.Path API from the standard library
????def iter_child_filenames(dirpath):
????for child in dirpath.iterdir():
????if child.is_file():
????yield child.name
???????Java?б???????????????????????????д????????????????Iterator???????????????????ж???????????? Python?????????????????????????????????????????????????????????????????????????????????????????д???
????????????????????????????????????????????Щ???????????????? ????????????????(????????????for?????????????????)?????????????????????????????????????????????????ú????????????????? Python????????????????????I/O(??????????????????)????????????????????????async ??await ????
????????
??????????Python????????????????????????ò??????????????????????Java??????—Python????????????????????? Python??????“docstrings”????????Javadoc?????????????????????????????????
????def foo(a?? b?? c):
????"""Print out the arguments.  Not a very useful function?? really."""
????print("I got"?? a?? b?? c)
????foo(1?? 2?? 3)  # I got 1 2 3
????Java????args …?????亯??; Python???* args???????????????? (????????*leftovers?????????????????)?????Python?????Щ???ɡ??κβ??????????????????????????????κβ??????????????? ???? – ???????Point(x = 3??y = 4)????????????? ?κκ?????????????* args??????????????????У?????????????????????????????????** kwargs????????????????dict??????????????????????“???????(keyword-only)”???????????? ????????????????????????????????
????Python?????? ???????????????????????????????????????????(duck typing)?????????滻??
????????????Python??????????? ?????????????????????????????????????滻????* args??** kwargs?????κκ??? ???????????