_
라는 변수에 저장>>> 5 + 4
9
>>> _
9
>>> _ + 6
15
>>> a = _
>>> a
15
_
에 지정# 하나의 값 무시
a, _, b = (1, 2, 3)
print(a, b) # 1,3
# 여러 개의 값 무시
# *을 이용하여 여러 개의 값을 하나의 변수에 저장할 때 쓰임
# "Extended Unpacking"이며, Python 3.x에서 사용 가능
a, *_, b = (7, 6, 5, 4, 3, 2, 1)
print(a, b) # 7,1
for _ in range(5):
print(_)
0
1
2
3
4
lang = ["Python","JS","PHP","Java"]
for _ in lang:
print(_)
Python
JS
PHP
Java
_ = 5
while _ < 10:
print(_, end = ' ')
_ += 1
# end의 기본값은 \n
5 6 7 8 9
_
를 사용million = 1_000_000
binary = 0b_0010 # 2진수
octa = 0o_64 # 8진수
hexa = 0x_23_ab # 16진수
print(million) # 1000000
print(binary) # 2
print(octa) # 52
print(hexa) # 9131
class Test:
def__init__(self):
self.name = "test"
self._num = 7
obj = Test()
print(obj.name) # test
print(obj._num) # 7
# my_functions.py
def func():
return "test"
def _private_func():
return 7
# 다른 파일에서 my_function.py를 import
# 하지만 파이썬은 언더바 하나로 시작한 이름들은 import하지 않는다!
>>> from my_functions import *
>>> func()
"test"
>>> _private_func()
Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name '_private_func' is not defined
# 모듈 자체를 import하기!
>>> import my_functions
>>> my_functions.func()
"test"
>>> my_functions._private_func()
7
_
를 사용하여 파이썬 키워드와의 충돌을 피할 수 있음_클래스명__변수/함수명
으로 이름이 변경 됨class TestClass():
def __init__(self):
self.name = "Peter"
self.gender = "male"
self.__age = 32
man = TestClass()
print(man.name) # Peter
print(man.gender) # male
print(man.__age) # AttributeError 발생
# dir함수는 클래스 객체의 모든 attribute들을 리턴
# gender, name는 보이지만 __age는 _TestClass__age라는 이름이 보인다
print(dir(man))
['_TestClass__age', '__class__', '__delattr__', '__dict__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'gender', 'name']
print(man._TestClass__age) # 32 출력
class TestClass():
def __init__(self): # 클래스 내부에 정의된 함수를 메서드, TestClass가 하는 행동을 정의
print("Hello World")
test = TestClass() # 인스턴스 명 = 클래스()
Reference