None
Python áá˛áˇ None áááŻáᏠááŹáá˛?
áááŻá¸áááŻá¸ááąá¸ ááźáąáŹááááş None áááŻáᏠááŹáááşáááŻá¸ááž ááážááá°á¸ áááŻáˇ ááźáąáŹááťááşááŹá
áááźáŹá¸ language áá˝áąáážáŹááąáŹáˇ null áááŻáˇ nil áááŻáˇ ááąáŤáşááźááŹááąáŤáˇá Python áážáŹááąáŹáˇ None áááŻáˇááąáŤáşáááşá
áážááşá¸áĄáąáŹááş áĽáááŹááąá¸áááş
0 (Zero)
Bro áááŻááşááśáĄáááşáá˛áážáŹ áááŻááşááś ááŻáááťááş áážááááşáááŻáᏠáááşáááŻá¸áá áşáᯠáážáááąááŹá áááŻááşááśááážááá°á¸áááŻáá˛áˇ áááşáááŻá¸á
money = 0
print(money) # 0 (áááşáááŻá¸áá
áşáᯠáážááááş)
print(type(money)) # <class 'int'>"" (Empty String)
Bro áááşáá˛áážáŹ Note á áŹáĄáŻááş áážááááşá ááŤááąáááˇáş ááŹá áŹááž áááąá¸áááąá¸áá°á¸á á áŹáĄáŻááşááąáŹáˇ áážáááąááąá¸áááşááąáŹáşá
note = ""
print(note) # (ááŹááž áááąáŤáşáá°á¸á ááŤááąáááˇáş string áá
áşáᯠáážááááş)
print(type(note)) # <class 'str'>
print(len(note)) # 0 (á
áŹááŻáśá¸ ááŻáááŻáśá¸)None (The Void)
Bro áááşáá˛áážáŹ áááŻááşááśáĄáááşáááşá¸ ááážááá°á¸á á áŹáĄáŻááşáááşá¸ ááážááá°á¸á ááŹáážááᯠááážáááŹá ááąááŹáááşááźáŽá¸ ááźá áşááąááŹá
nothing = None
print(nothing) # None
print(type(nothing)) # <class 'NoneType'>áááşáĄááťáááşáážáŹ ááŻáśá¸áá˛?
Python code ááąá¸áá˛áˇáĄá፠ááŽáááŻááąááŹáá˝áąáážáŹ None ááᯠáĄááťáŹá¸ááŻáśá¸ áá˝áąáˇáááááˇáşáááşá
1. Variable áĄáá˝ááş ááŹá¸ááťááşáá˛áˇáĄá፠(Placeholder)
Bro á variable áá áşáᯠááźáąááŹááťááşáááşá ááŤááąáááˇáş áĄáá˛áážáŹ ááŹáááşáááŻá¸áááˇáşáááᲠáááááąá¸áá°á¸ ááŤáážáááŻááş data ááááąá¸áá°á¸ áááŻáááş None ááąá¸ááŹá¸áááŻáˇááááşá
# ááźááŻááşáá˝á˛áááźáŽá¸ááąá¸ááąáŹáˇ winner ááážáááąá¸áá°á¸ááą
winner = None
# ááźááŻááşáá˝á˛ááźáŽá¸ááąáŹáˇ
winner = "Team A"
print(f"Winner: {winner}") # Winner: Team A# User á login áááŻááşáááąá¸áááş
current_user = None
if current_user is None:
print("Please login first!")
else:
print(f"Welcome back, {current_user}!")2. Function á ááŹááž ááźááşáááąá¸áá˛áˇáĄááŤ
function áá áşááŻáážáŹ return áááŻááźáŽá¸ ááŹááž ááŽá¸áááˇáş ááźááşáááąá¸áááşá áá°á auto None ááᯠreturn ááźááşááąá¸áááşá
def greet(name):
print(f"Hello, {name}!")
# return ááŹááž áááąá¸ááŹá¸áá°á¸
result = greet("Bro")
print(f"Return value: {result}") # Return value: None# print function á screen áážáŹá
áŹááąáŤáşááŹááąáááˇáş
# return value á None ááźá
áşááąááááˇáşáááş
result = print("Hello World")
print(f"Result: {result}") # Result: None3. Default Argument áĄááąáá˛áˇ ááŻáśá¸áá˛áˇáĄááŤ
Function áá˝áąááąá¸áááş ááŹááž ááááˇáşáááş ááŹááž áááŻááşáá˛áˇ áááŻáá˛áˇ áááąáŹááťááŻá¸áá˛áˇ None ááᯠááŻáśá¸ááźáááşá
def send_email(to, subject, cc=None):
print(f"Sending email to: {to}")
print(f"Subject: {subject}")
if cc is not None:
print(f"CC: {cc}")
else:
print("No CC")
# CC ááááˇáşáᲠááŻáśá¸áááş
send_email("friend@example.com", "Meeting")
# CC áááˇáşááźáŽá¸ ááŻáśá¸áááş
send_email("friend@example.com", "Meeting", "boss@example.com")Rule
Wrong Way
x = None
# ááŤá áááşá¸áááşá¸ noob áááşáááş
# áááťááŻáˇ edge case áá˝áąáážáŹ áá˝á˛áááŻááşáááş
if x == None:
print("This works, but not Pythonic")Correct Way
x = None
# ááŤááž Pythonic ááźá
áşáááşá Professional áááşáááş
if x is None:
print("Bro, ááŽááąáŹááş ááŹáážááážááá°á¸ (It's None!)")
else:
print("áááşáááŻá¸áá
áşáᯠáážááááşá")ááŹáááŻáˇ is ááŻáśá¸áááŹáá˛?
None á Python áážáŹ singleton object áá áşáᯠááźá áşáááşá áááŻáááŻááŹá memory áá˛áážáŹ None á áá áşááŻáááşá¸áᏠáážááááşá
is á identity ááᯠá á áşáᏠ(same object ááŹá¸)á == á value ááᯠá á áşáᏠ(same value ááŹá¸)á
a = None
b = None
# áážá
áşáᯠááŻáśá¸ same object ááᯠpoint ááŻááşááąáááş
print(a is b) # True
print(id(a) == id(b)) # True (same memory address)ááážáŹá¸áááˇáşáá˛áˇ áĄáážáŹá¸
Logic á á áşáá˛áˇáĄá፠ááŽááŹáá˝áą ááąáŹáá˝áŹá¸áááşáááşá áááááŹá¸ááąáŹáşá
Mistake 1: None vs False
x = None
y = False
print(x == y) # False (ááá°áá°á¸)
print(type(x)) # <class 'NoneType'>
print(type(y)) # <class 'bool'>
# ááŤááąáááˇáş if condition áážáŹ
if not x:
print("None is falsy!") # á፠run áááş
if not y:
print("False is also falsy!") # ááŤáááşá¸ run áááşMistake 2: None vs 0
x = None
y = 0
print(x == y) # False (ááá°áá°á¸)
print(type(x)) # <class 'NoneType'>
print(type(y)) # <class 'int'>
# ááŤááąáááˇáş Boolean context áážáŹ
if not x:
print("None is falsy")
if not y:
print("0 is also falsy")Mistake 3: None vs Empty String
x = None
y = ""
print(x == y) # False (ááá°áá°á¸)
print(type(x)) # <class 'NoneType'>
print(type(y)) # <class 'str'>
# ááŤááąáááˇáş Boolean context áážáŹ
if not x:
print("None is falsy")
if not y:
print("Empty string is also falsy")áĽáááŹ
Example 1: Search Function
List áá˛á item áá áşáᯠáážáŹáááşá ááá˝áąáˇáááş None ááᯠreturn ááŻááşáááşá
def find_user(user_id, users):
for user in users:
if user['id'] == user_id:
return user
return None # ááá˝áąáˇáááş None ááźááşáááş
users = [
{'id': 1, 'name': 'ááá˝ááşáá˝ááş'},
{'id': 2, 'name': 'áá˝ááşááŽ'}
]
result = find_user(1, users)
if result is not None:
print(f"Found: {result['name']}")
else:
print("User not found")
result = find_user(999, users)
if result is None:
print("User 999 not found")Example 2: Optional Configuration
Configuration áá˝áąáážáŹ optional values áá˝áą ááŻáśá¸áá˛áˇáĄááŤá
def create_server(host, port, ssl_cert=None):
print(f"Starting server on {host}:{port}")
if ssl_cert is not None:
print(f"Using SSL certificate: {ssl_cert}")
print("HTTPS enabled")
else:
print("HTTP only (no SSL)")
# SSL áááŤáᲠááŻáśá¸áááş
create_server("localhost", 8080)
print("\n---\n")
# SSL ááŤááźáŽá¸ ááŻáśá¸áááş
create_server("example.com", 443, "/path/to/cert.pem")Example 3: Caching System
Cache áá˛áážáŹ data áážá/ááážá á á áşáá˛áˇáĄááŤá
cache = {}
def get_data(key):
# .get() method á key ááážááááş None return ááŻááşáááş
result = cache.get(key)
if result is None:
print(f"Cache miss for '{key}'. Fetching from database...")
result = f"Data for {key}" # Database áááą áá°áááşáááŻáˇ áááŻááŤá
ááŻáˇ
cache[key] = result # Cache áážáŹ ááááşá¸áááş
else:
print(f"Cache hit for '{key}'")
return result
# áááááŻáśá¸ ááąáŤáşááąáŹáˇ cache áážáŹ ááážáááąá¸áá°á¸
data1 = get_data("user_123")
print(f"Result: {data1}\n")
# ááŻááá áá
áşá፠ááąáŤáşááąáŹáˇ cache áážáŹ áážáááźáŽ
data2 = get_data("user_123")
print(f"Result: {data2}")áĄáážá áşááťáŻááş
- None: Python áážáŹ ááŹáááşáááŻá¸ááž ááážááá°á¸ áááŻááŹááᯠáááŻááşá áŹá¸ááźáŻáá˛áˇ special value
- Type: NoneType áááŻáá˛áˇ ááŽá¸ááźáŹá¸ type áá áşááŻ
- Check None: is ááᯠááŻáśá¸ááááşá == ááᯠáááŻáśá¸ááá°á¸
- Common Uses: Placeholder, function return value, default argument
- Falsy Value: None á falsy value ááźá áşáááşá ááŤááąáááˇáş False, 0, "" áááŻáˇáá˛áˇ ááá°áá°á¸
- Singleton: None á Python áážáŹ singleton object