ã¯ããã«
æ®æ®µã¯ç©æµãã©ãã¯ãã©ã€ããŒãããªããPythonåŠç¿ãããŠãã tosane932 ã§ãã
åãPythonåŠç¿ãå§ããåæããçŸåšé²è¡åœ¢ã§éçºããŠããã
ð sales_data_app ð¥
ã®å®éã®ã³ãŒããææã«ãPythonåºç€ãåŠã³çŽããŠããŸãã
ãããŸã§ã
1æéç®
倿°ã»ããŒã¿åã»æ¯èŒæŒç®åã»ifæ
2æéç®
ãªã¹ãã»èŸæžã»setã»foræ
3æéç®
颿°ã»åŒæ°ã»returnã»é¢æ°ã®åŒã³åºãã»åãã³ã
4æéç®
ã¢ãžã¥ãŒã«ã»importã»äŸå€ã»tryã»except
5æéç®
ã¯ã©ã¹ã»ã€ã³ã¹ã¿ã³ã¹ã»__init__ã»selfã»å±æ§
6æéç®
fæååã»ã¢ã³ããã¯ã»ãªã¹ãå
å
衚èšã»join
7æéç®
stripã»lenã»splitlinesã»ã¹ã©ã€ã¹
ãšåŠã³çŽããŠããŸããã
7æéç®ã§ã¯ãæé·ããåºèã¡ã¢ããŒã«ã® shop_memos.py ããã
strip()
len()
splitlines()
[:100]
ãªã©ãæååãæ±ãPythonåºç€ãèŠãŸããã
ä»åãåã shop_memos.py ãèªãã§ã¿ãŸãã
ãããšä»åºŠã¯ã
if validation_error is not None:
if memo is None:
"pinned": memo.pinned_at is not None,
if not isinstance(raw_body, str):
ãšããã³ãŒããåºãŠããŸãã
ð¹ãNoneãäœåãåºãŠããããisãšisinstanceã¯ååã䌌ãŠããã
確ãã«ã
None
is
is not
isinstance
ã¯ãfor ã if ãšæ¯ã¹ããšå°ãå°å³ã«èŠããŸãã
åèªèº«ããååã ããªããã®ãŸãŸèªã¿é£ã°ããŠããŸãããã§ãã
ã§ãå®éã®åºèã¡ã¢ã§ã¯ã
å€ãããã®ã
å€ããªãã®ã
æ³å®ããåãªã®ã
ãã³çããããŠããã®ã
ã確èªããããã«äœ¿ãããŠããŸãã
ä»åã¯ã
Noneã»isã»is notã»isinstance
ã«ã€ããŠãåºèã¡ã¢ã®å®ã³ãŒãããåŠã³çŽããŠã¿ãŸãã
ð Guest Demoãå ¬éããŠããŸã
sales_data_app ã®Guest Demoãå
¬éããŠããŸãã
ä»åææã«ããåºèã¡ã¢ããŒã«ããå®éã®ç»é¢ãã確èªã§ããŸãã
https://bakery-salesdata.onrender.com/
Renderäžã§å ¬éããŠãããããååã¢ã¯ã»ã¹æã¯ç»é¢ã衚瀺ããããŸã§å°ãæéããããå ŽåããããŸãã
ä»åã®ã³ãŒãã¯ã©ãã«ããïŒ
ä»åãã
sales_data_app
â
shop_memos.py
ãææã«ããŸãã
ä»åã¯1ã€ã®é¢æ°ã ãã§ã¯ãªãã
_validate_autosave_body()
memo_json_payload()
autosave_new_memo()
set_pin()
ãªã©ãåºèã¡ã¢ã®ããã€ãã®åŠçãè¡ãæ¥ããªããèŠãŠãããŸãã
ãŸãã¯ããã®ã³ãŒãã§ãã
def _validate_autosave_body(payload):
raw_body = payload.get("body", "") if isinstance(payload, dict) else ""
if not isinstance(raw_body, str):
return None, None, "ã¡ã¢ã®åœ¢åŒãæ£ãããããŸããã"
if not raw_body.strip():
return None, None, "ã¡ã¢ãå
¥åããŠãã ããã"
if len(raw_body) > SHOP_MEMO_BODY_MAX_LENGTH:
return None, None, "ã¡ã¢ã¯2000æå以å
ã§å
¥åããŠãã ããã"
return _derive_title_from_body(raw_body), raw_body, None
ããã«ããªãŒãã»ãŒãåŽã§ã¯ã
title, body, validation_error = _validate_autosave_body(
request.get_json(silent=True)
)
if validation_error is not None:
return json_error(validation_error, 400)
ãšããã³ãŒãããããŸãã
ð¹ãæåŸã® None ããæ¬¡ã® is not None ã«ã€ãªãã£ãŠãïŒã
ä»åã¯ããããæã£ãŠã¿ãŸãã
å³1ïŒåºèã¡ã¢ã§ã¯ç»é¢äžããæ®éã«ã¡ã¢ãå ¥åããŠããŸãããå éšã§ã¯å ¥åãããå€ã®åããšã©ãŒã®æç¡ãªã©ã確èªããŠããä¿ååŠçãžé²ãã§ããŸãã
ð ããã§ã¯8æéç®
ä»åã®ããŒã
ãNoneã»isã»is notã»isinstanceãšã¯ïŒã
ä»ååŠã³çŽãã®ã¯4ã€ã§ãã
ð ä»ååŠã¶4ã€
-
NoneïŒå€ããªãããšã衚ãç¹å¥ãªå€ -
isïŒåããªããžã§ã¯ããã®ãã®ã確èªãã -
is notïŒåããªããžã§ã¯ãã§ã¯ãªãããšã確èªãã -
isinstance()ïŒå€ãæå®ããåã®ãªããžã§ã¯ãã確èªãã
ä»åã®åºèã¡ã¢ã§ã¯ã
ãšã©ãŒã¯ããïŒ
â
Noneã確èª
ã¡ã¢ã¯èŠã€ãã£ãïŒ
â
Noneã確èª
ãã³çããããŠããïŒ
â
pinned_atãNoneã確èª
åãåã£ãæ¬æã¯æååïŒ
â
isinstance()ã§ç¢ºèª
ãšãã圢ã§äœ¿ãããŠããŸãã
1. ð Noneãšã¯ïŒ
ãŸãã¯ã
None
ã§ãã
None ã¯ã
å€ããªãããšã衚ãããã«äœ¿ããããPythonã®ç¹å¥ãªå€
ã§ãã
äŸãã°ã
result = None
ãšãããšã
result
ã«ã¯æååãæ°åã§ã¯ãªãã
None
ãå ¥ã£ãŠããŸãã
Noneã¯ç©ºæåãšã¯éã
ããã¯æåã«åºå¥ããŠãããŸãã
äŸãã°ã
""
ã¯ç©ºã®æååã§ãã
0
ã¯æŽæ°ã®0ã§ãã
False
ã¯çåœå€ã®Falseã§ãã
ãããŠã
None
ã¯å€ããªãããšã衚ãç¹å¥ãªå€ã§ãã
ã€ãŸãã
""
â
æååã¯ãã
ãã ãäžèº«ã空
0
â
æŽæ°ã®å€ããã
ãã®å€ã0
False
â
çåœå€ããã
ãã®å€ãFalse
None
â
å€ããªãããšã衚ã
ãšãããããæå³ãéããŸãã
ð¹ãå šéšâäœããªãããâã«èŠãããã©ãå¥ç©ãªãã ãã
2. ð åºèã¡ã¢ã§ã¯Noneãã©ã䜿ã£ãŠããïŒ
å®ã³ãŒããèŠãŠã¿ãŸãã
def _validate_autosave_body(payload):
ã§ã¯ãå ¥åå 容ã確èªããŠã
åé¡ãããã°ã
return None, None, "ã¡ã¢ã®åœ¢åŒãæ£ãããããŸããã"
ã®ããã«è¿ããŠããŸãã
äžæ¹ã§åé¡ããªããã°ã
return _derive_title_from_body(raw_body), raw_body, None
ãšãªã£ãŠããŸãã
æåŸã«ã
None
ããããŸãã
ãšã©ãŒããªããã°None
ãã®é¢æ°ããè¿ãããå€ãåãåãåŽã§ã¯ã
title, body, validation_error = _validate_autosave_body(
request.get_json(silent=True)
)
ãšãªã£ãŠããŸãã
ããã§ã
validation_error
ã«ã¯ã
ãšã©ãŒãããã°ã
"ã¡ã¢ã®åœ¢åŒãæ£ãããããŸããã"
ãªã©ã®æååãå ¥ããŸãã
ãšã©ãŒããªããã°ã
None
ãå ¥ããŸãã
ã€ãŸãã
ãšã©ãŒãã
â
validation_errorã«ãšã©ãŒã¡ãã»ãŒãž
ãšã©ãŒãªã
â
validation_errorã¯None
ãšããäœ¿ãæ¹ã§ãã
ð¹ãâãšã©ãŒãªãâãNoneã§è¡šããŠãã®ããã
3. ð is Noneãšã¯ïŒ
次ã«åºãŠããã®ãã
is None
ã§ãã
åºèã¡ã¢ã«ã¯ã
if memo is None:
abort(404)
ãšããã³ãŒãããããŸãã
ããã¯ã
memoãNoneãªã
ãšããæ¡ä»¶ã§ãã
isãšã¯ïŒ
ããã§ã
is
ãç»å ŽããŸãã
1æéç®ã§ã¯ã
==
ãšããæ¯èŒæŒç®åãåŠã³ãŸããã
äŸãã°ã
10 == 10
ãªãã
True
ã«ãªããŸãã
== ã¯ã
å€ãçããã
ãæ¯èŒããŸãã
äžæ¹ã§ã
is
ã¯ã
åããªããžã§ã¯ããã®ãã®ã
ã確èªããŸãã
Noneã®å€å®ã§ã¯is None
None ã確èªãããšãã¯ã
value is None
ãšãã圢ããã䜿ããŸãã
äŸãã°ã
memo = None
if memo is None:
print("ã¡ã¢ããããŸãã")
ãªãã
ã¡ã¢ããããŸãã
ãšè¡šç€ºãããŸãã
ä»åã®å®ã³ãŒããã
if memo is None:
abort(404)
ãªã®ã§ã
memoãååŸãã
â
èŠã€ãããªã
â
memoãNone
â
404
ãšããæµãã§ãã
== Noneãããªãã®ïŒ
ããã¯åãæåã«æ°ã«ãªããŸããã
value == None
ã§ã¯ãªãã
value is None
ãšæžãããŠããŸãã
== ã¯å€ã®æ¯èŒã
is ã¯åããªããžã§ã¯ããã®ç¢ºèªã§ãã
None ã確èªãããšãã¯ã
is None
ãšãã圢ã§èªãã®ãåºæ¬ã«ãªããŸãã
ä»åã¯ãŸãã
Noneã確èªãããšãã¯
is None
ãšèŠããŠãããŸãã
ð¹ã==ãšäŒŒãŠèŠãããã©ãåãæå³ã§ã¯ãªããã ãã
4. â
is not Noneãšã¯ïŒ
次ã¯ã
is not None
ã§ãã
ããã¯ãã®ãŸãŸã
Noneã§ã¯ãªã
ãšãã確èªã§ãã
å®ã³ãŒãã§ã¯ã
if validation_error is not None:
return json_error(validation_error, 400)
ãšãªã£ãŠããŸãã
ãšã©ãŒãå ¥ã£ãŠããã確èªãã
å ã»ã©ã
ãšã©ãŒãªã
â
validation_error = None
ãšèŠãŸããã
éã«ã
ãšã©ãŒãã
â
validation_error = "ãšã©ãŒã¡ãã»ãŒãž"
ã§ãã
ããã§ã
if validation_error is not None:
ãšç¢ºèªããŸãã
ã€ãŸãã
validation_error
â
Noneã§ã¯ãªãïŒ
YES
â
ãšã©ãŒãå
¥ã£ãŠãã
â
ãšã©ãŒã¬ã¹ãã³ã¹ãè¿ã
ãšããæµãã§ãã
is Noneãšis not None
䞊ã¹ããšåããããããªããŸãã
value is None
ãªãã
Noneã§ãã
value is not None
ãªãã
Noneã§ã¯ãªã
ã§ãã
å®ã³ãŒãã§ãã
if memo is None:
ãšã
if validation_error is not None:
ã®äž¡æ¹ã䜿ãããŠããŸãã
5. ð ãã³çãã§ãNoneã䜿ãããŠãã
åºèã¡ã¢ã«ã¯ããã³çãæ©èœããããŸãã
ãã®ç¶æ ãJSONãžå€æããåŠçã§ã¯ã
"pinned": memo.pinned_at is not None,
ãšãªã£ãŠããŸãã
ããã«ãã
is not None
ããããŸãã
pinned_atã«ã¯æ¥æãå
¥ã
ãã³çããããŠããã¡ã¢ã§ã¯ã
memo.pinned_at
ã«ããã³çãããæ¥æãå ¥ããŸãã
éã«ãã³çããããŠããªãå Žåã¯ã
None
ã§ãã
ãã®ããã
memo.pinned_at is not None
ãªãã
pinned_atã«å€ããã
â
ãã³çããããŠãã
â
True
ãšãªããŸãã
éã«ã
pinned_atãNone
â
ãã³çããããŠããªã
â
False
ã§ãã
ãã®çµæãpinnedãžå
¥ãã
å®ã³ãŒãã¯ã
"pinned": memo.pinned_at is not None,
ã§ãã
ã€ãŸãã
memo.pinned_at
â
Noneã§ã¯ãªãïŒ
â
True ãŸã㯠False
â
"pinned"ãžå
¥ãã
ãšãªã£ãŠããŸãã
ð¹ãæ¥æããããã©ããããTrueãšFalseã«å€ããŠããã ãã
ããã§ã¯ã
1æéç®ã§åŠãã ã
bool
ã«ãã€ãªãã£ãŠããŸãã
å³2ïŒç»é¢äžã§ã¯ãã³çãã¢ã€ã³ã³ãæäœããŠããŸãããå éšã§ã¯
pinned_atã«æ¥æãå ¥ã£ãŠããããNoneãªã®ãã«ãã£ãŠç¶æ ãå€å®ããŠããŸãã
6. ð ãã³çããããšNoneã¯ã©ãå€ããïŒ
ããã«å®ã³ãŒããèŠãŠã¿ãŸãã
if desired_state and memo.pinned_at is None:
memo.pinned_at = utc_now()
elif not desired_state and memo.pinned_at is not None:
memo.pinned_at = None
å°ãé·ãèŠããŸãã
ä»åã¯ã
and
ã«ã€ããŠã¯æ·±å ¥ãããã
None ã«æ³šç®ããŸãã
ãã³çããããšã
ãŸãã
memo.pinned_at is None
ã確èªããŠããŸãã
ã€ãŸãã
ãŸã ãã³çãæ¥æããªã
â
None
ãšããç¶æ ã§ãã
ããããã
memo.pinned_at = utc_now()
ãšããŠã
çŸåšæå»ãå ¥ããŸãã
ã€ã¡ãŒãžãããšã
None
â
ãã³çããã
â
æ¥æãå
¥ã
ã§ãã
ãã³çããå€ããšã
éã«ã
memo.pinned_at is not None
ãªãã
ãã³çãæ¥æãå ¥ã£ãŠããŸãã
ããã§ã
memo.pinned_at = None
ãšããŠããŸãã
ã€ãŸãã
æ¥æãå
¥ã£ãŠãã
â
ãã³çããå€ã
â
Noneã«æ»ã
ãšããæµãã§ãã
ð¹ãNoneã£ãŠããã âäœããªãâã ããããªããŠç¶æ ã衚ãã®ã«ã䜿ãããã ãã
7. 𧪠isinstance()ãšã¯ïŒ
æåŸã¯ã
isinstance()
ã§ãã
ååã«ã
is
ãå ¥ã£ãŠããŸããã
å ã»ã©ã®ã
is None
ãšã¯å¥ã®ãã®ã§ãã
isinstance() ã¯é¢æ°ã§ãã
æå®ããåã確èªãã
äŸãã°ã
name = "ã¡ãã³ãã³"
ããããšããŸãã
ãããã
isinstance(name, str)
ãšãããšã
True
ã«ãªããŸãã
name ã¯æååã ããã§ãã
äžæ¹ã§ã
qty = 12
ãªãã
isinstance(qty, str)
ã¯ã
False
ã«ãªããŸãã
æŽæ°ãªã®ã§ã
str
ã§ã¯ãããŸããã
æžãæ¹ãåããŠèŠã
isinstance(name, str)
ãªãã
name
â
確èªãããå€
str
â
確èªãããå
ã§ãã
ã€ãŸãã
nameã¯stråã§ããïŒ
ãšç¢ºèªããŠããŸãã
çµæã¯ã
True
ãŸãã¯
False
ã§ãã
8. ð åºèã¡ã¢ã§ã¯äœã®åã確èªããŠããïŒ
å®ã³ãŒãã¯ãã¡ãã§ãã
if not isinstance(raw_body, str):
return None, None, "ã¡ã¢ã®åœ¢åŒãæ£ãããããŸããã"
確èªããŠããã®ã¯ã
raw_body
ã§ãã
ãããŠåã¯ã
str
ã§ãã
ã€ãŸãã
isinstance(raw_body, str)
ã ããªãã
raw_bodyã¯æååã§ããïŒ
ãšãã確èªã§ãã
åã«notãä»ããŠãã
å®ã³ãŒãã§ã¯ã
if not isinstance(raw_body, str):
ãšãªã£ãŠããŸãã
åã«ã
not
ããããŸãã
ã€ãŸãã
raw_bodyã¯stråïŒ
â
éã
å Žåã«ã
return None, None, "ã¡ã¢ã®åœ¢åŒãæ£ãããããŸããã"
ãè¿ããŸãã
æµãã«ãããšã
raw_bodyãåãåã
â
isinstance(raw_body, str)
â
æååã確èª
â
æååã§ã¯ãªã
â
ãšã©ãŒãšããŠreturn
ã§ãã
ð¹ãã¡ã¢æ¬æãªãã ãããæååãããªããšå°ããããªãã
ð 4ã€ãå šéšã€ãªããŠã¿ã
ãããŸã§ã
None
is
is not
isinstance()
ãèŠãŠããŸããã
åºèã¡ã¢ã§ã¯ãããããå¥ã ã«ååšããŠããããã§ã¯ãããŸããã
å ¥åããä¿åãŸã§ã®äžã§ã€ãªãã£ãŠããŸãã
äŸãã°ã
if not isinstance(raw_body, str):
return None, None, "ã¡ã¢ã®åœ¢åŒãæ£ãããããŸããã"
ã§ã¯ã
isinstance()
â
åã確èªãã
æååã§ã¯ãªã
â
ãšã©ãŒãè¿ã
ãšãªããŸãã
å ¥åã«åé¡ããªããã°ã
return _derive_title_from_body(raw_body), raw_body, None
ãšããŠã
ãšã©ãŒãªã
â
validation_error = None
ã«ãªããŸãã
ãããŠåŒã³åºãåŽã§ã¯ã
if validation_error is not None:
ãšç¢ºèªããŠããŸãã
ã€ãŸãã
å€ãåãåã
â
isinstance()ã§åã確èª
â
åé¡ãããã°ãšã©ãŒæåå
â
åé¡ããªããã°None
â
is not Noneã§ãšã©ãŒã®æç¡ã確èª
ãšããæµãã§ãã
ð ãã³çãåŽãåãèãæ¹
ãã³çãã§ã¯ã
pinned_at = None
â
ãã³çããããŠããªã
pinned_at = æ¥æ
â
ãã³çããããŠãã
ãšããç¶æ ã䜿ã£ãŠããŸãã
ãããŠã
memo.pinned_at is None
memo.pinned_at is not None
ã«ãã£ãŠã
ç¶æ ãå€å®ããŠããŸãã
ããã«ã
"pinned": memo.pinned_at is not None,
ã«ãã£ãŠã
æ¥æãããïŒãªã
â
TrueïŒFalse
ãžå€æããŠããŸãã
1æéç®ã§åŠãã bool ãã
åºèã¡ã¢ã®ãã³çãç¶æ ãšããŠäœ¿ãããŠããããšãèŠããŠããŸãã
ð ä»åã®åŠçãGuest Demoã§ç¢ºèªã§ããŸã
ä»åæ±ã£ãã
None
is None
is not None
isinstance()
ã¯ãçŸåšã®åºèã¡ã¢ããŒã«ã§å®éã«äœ¿ãããŠããPythonã³ãŒãã§ãã
ç»é¢äžã§ã¯ã
ã¡ã¢ãæžã
ãã³çããã
ä¿åãã
ãšããæäœã§ããã
ãã®è£åŽã§ã¯ã
å€ã®åã確èªãã
â
ãšã©ãŒã®æç¡ã確èªãã
â
å€ãååšããã確èªãã
â
ç¶æ
ãTrue / Falseãžå€ãã
ãšããåŠçãåããŠããŸãã
ð 8æéç®ãŸãšã
ä»åã¯ãshop_memos.py ã®å®ã³ãŒãããã
None
å€ããªãããšã衚ãç¹å¥ãªå€ã
return _derive_title_from_body(raw_body), raw_body, None
is None
Noneã§ããããšã確èªããã
if memo is None:
is not None
Noneã§ã¯ãªãããšã確èªããã
if validation_error is not None:
isinstance()
å€ãæå®ããåã®ãªããžã§ã¯ãã確èªããã
isinstance(raw_body, str)
ãåŠã³çŽããŸããã
å®ã³ãŒãã§ã¯ã
å€ãåãåã
â
isinstance()ã§åã確èª
â
Noneã§ãšã©ãŒã®æç¡ã衚ã
â
is None / is not Noneã§ç¶æ
ã確èª
ãšãã圢ã§äœ¿ãããŠããŸãã
ð€ èªåã§ç¢ºèªããŠã¿ã
æåŸã«ãä»åã®å 容ãèªåã§ã確èªããŠã¿ãŸãã
Q1
次ã®äžã§ãPythonã§ãå€ããªããããšã衚ãç¹å¥ãªå€ã¯ã©ãã§ãããïŒ
A. ""
B. 0
C. None
ð °ïžçããèŠã
C. None
ã§ãã
""
ã¯ç©ºã®æååã
0
ã¯æŽæ°ã®0ã§ãã
None ãšã¯å¥ç©ã§ãã
Q2
次ã®ã³ãŒãã¯äœã確èªããŠããã§ãããïŒ
if memo is None:
ð °ïžçããèŠã
memo ãã
None
ã確èªããŠããŸãã
åºèã¡ã¢ã®å®ã³ãŒãã§ã¯ã
ã¡ã¢ãèŠã€ãããªãã£ãå Žåã®å€å®ã«äœ¿ãããŠããŸãã
Q3
次ã®ã³ãŒãã¯äœã確èªããŠããã§ãããïŒ
if validation_error is not None:
ð °ïžçããèŠã
validation_error ãã
None
ã§ã¯ãªãããšã確èªããŠããŸãã
ä»åã®ã³ãŒãã§ã¯ã
None
â
ãšã©ãŒãªã
ãšã©ãŒã¡ãã»ãŒãž
â
ãšã©ãŒãã
ãšããäœ¿ãæ¹ãããŠããŸãã
Q4
次ã®çµæã¯äœã§ãããïŒ
isinstance("ã¡ãã³ãã³", str)
A. True
B. False
C. None
ð °ïžçããèŠã
A. True
ã§ãã
"ã¡ãã³ãã³"
ã¯æååãªã®ã§ã
str
åã§ãã
Q5
次ã®çµæã¯äœã§ãããïŒ
isinstance(12, str)
ð °ïžçããèŠã
False
ã§ãã
12 ã¯æŽæ°ãªã®ã§ã
str
ã§ã¯ãããŸããã
Q6
åºèã¡ã¢ã§ã
memo.pinned_at is not None
ã True ã«ãªãã®ã¯ãã©ããªç¶æ
ã§ãããïŒ
ð °ïžçããèŠã
pinned_at ã«æ¥æãå
¥ã£ãŠããç¶æ
ã§ãã
ä»åã®åºèã¡ã¢ã§ã¯ã
ãã³çããããŠãã
ããšã衚ããŸãã
Q7
ãã³çããå€ããšã
memo.pinned_at = None
ãšããŠããŸãã
ããã¯äœã衚ããŠããã§ãããïŒ
ð °ïžçããèŠã
ãã³çãæ¥æããªãããŠã
ãã³çããããŠããªãç¶æ
ãžæ»ããŠããŸãã
Q8
次ã®2ã€ã¯åãæå³ã§ããããïŒ
==
is
ð °ïžçããèŠã
åãã§ã¯ãããŸããã
ä»åã®ç¯å²ã§ã¯ã
==
â
å€ãçãããæ¯èŒãã
is
â
åããªããžã§ã¯ããã®ãã®ã確èªãã
ãšèŠããŸãã
ç¹ã« None ã®ç¢ºèªã§ã¯ã
is None
is not None
ãšãã圢ã䜿ãããŠããŸãã
ð¹ 8æéç®ãçµããŠ
ä»åã¯ã
None
is
is not
isinstance()
ãšããã
ååã ããªãå°ãçŽ éãããŠããŸããããªPythonåºç€ãåŠã³çŽããŸããã
å®éã«ã³ãŒããèªããŸã§ã¯ã
ð¹ãããããããã1æéå䜿ãã»ã©ã®ãã®ãªã®ãïŒã
ãšãæããŸãã
ã§ãåºèã¡ã¢ã®ã³ãŒããèŠããšã
if validation_error is not None:
if memo is None:
"pinned": memo.pinned_at is not None,
if not isinstance(raw_body, str):
ãšãæ®éã«äœåºŠãåºãŠããŸãã
圹å²ãåãããšã
None
â
å€ããªãç¶æ
ã衚ã
is None
â
Noneã確èªãã
is not None
â
Noneã§ã¯ãªãã確èªãã
isinstance()
â
æ³å®ããåã確èªãã
ãšãããããªãåºæ¬çãªåŠçã§ããã
ãããŠä»åãã
1æéç®ã§åŠãã ã
if
bool
==
ãã
3æéç®ã§åŠãã ã
return
ãäžç·ã«ç»å ŽããŸããã
åã«åŠãã åºç€
â
æ°ããäœã£ãæ©èœã§åç»å Ž
â
ç¥ããªãéšåãèŠã€ãã
â
ãŸãåºç€ãšããŠæã
ä»åãåãæµãã§ãã
ãã¡ããèšäºã1æ¬æžããã ãã§ã
ãNoneãåå€å®ã¯å®å šã«çè§£ããïŒã
ãšã¯èããŸããã
ããããã³ãŒããèªãã§ããŠã
None
ãèŠã€ãããã
ããã§ã¯äœãããªããããšã衚ããŠãããã ããïŒ
ãšèããã
is None
ãèŠã€ãããã
äœãååšããªãããšã確èªããŠãããã ããïŒ
ãšèããã
is not None
ãèŠã€ãããã
å€ãååšããããšã確èªããŠã
ãã®ããšäœããããã ããïŒ
ãšèããã
isinstance(...)
ãèŠã€ãããã
äœã®åã確èªããŠãããã ããïŒ
ãšèããã
ãããªèªã¿æ¹ãå°ããã€ã§ããã°ã
ä»ãŸã§ãªãå°å³ã«èŠããŠéãéããŠããã³ãŒããã
äœãå®ãããã«æžãããŠããã®ãèŠããŠãããã§ãã
ãããŠä»åã®å®ã³ãŒãã«ã¯ã
if desired_state and memo.pinned_at is None:
ãšããã
and
ãåºãŠããŸããã
ããã«ã
payload.get("pinned") if isinstance(payload, dict) else None
ãšããããŸã 詳ããèŠãŠããªãæžãæ¹ããããŸãã
6æéç®ã§æ®ã£ãã
lambda
ããããŸãã
ð¹ããŸãææåè£ãå¢ãããã
å šéšãé çªã«è¿œãå¿ èŠã¯ãããŸããã
ãã®ãšãã® sales_data_app ã®å®ã³ãŒãããã
æ°ã«ãªã£ãPythonåºç€ãäžã€ãã€æã£ãŠãããŸãã
ãŸã ãŸã Pythonåºç€ã®åŠã³çŽãã¯ç¶ããŸãã
æ¬¡ã®æéããð sales_data_app ã®å®ã³ãŒããææã«ããŠèªãã§ãããŸãð¹
ðïž åºç€åŠç¿ã·ãªãŒãº
ð«1æéç®
ã倿°ã»ããŒã¿åã»æ¯èŒæŒç®åã»ifæãšã¯ïŒã
ð«2æéç®
ããªã¹ãã»èŸæžã»setã»foræãšã¯ïŒã
ð«3æéç®
ã颿°ã»åŒæ°ã»returnã»é¢æ°ã®åŒã³åºãã»åãã³ããšã¯ïŒã
ð«4æéç®
ãã¢ãžã¥ãŒã«ã»importã»äŸå€ã»tryã»exceptãšã¯ïŒã
ð«5æéç®
ãã¯ã©ã¹ã»ã€ã³ã¹ã¿ã³ã¹ã»initã»selfã»å±æ§ãšã¯ïŒã
ð«6æéç®
ãfæååã»ã¢ã³ããã¯ã»ãªã¹ãå å 衚èšã»joinãšã¯ïŒã
ð«7æéç®
ãstripã»lenã»splitlinesã»ã¹ã©ã€ã¹ãšã¯ïŒã
ð«8æéç®
ãNoneã»isã»is notã»isinstanceãšã¯ïŒã


