py
.py try문과 class-object와 funtion 사이에 일어나는 일(실험실)
jm_p_op
2023. 4. 4. 23:40
class test:
def __init__(self):
self.hp = 100
def ms(self):
self.hp -= 1
a = 0
b = test()
try:
while a < 100:
a += 1
b.ms()
if a == 10:
raise
except:
pass
c = [a, b.hp]
print(c)
# [10,90]
def test2(a, b):
try:
while a < 100:
a += 1
b.ms()
if a == 10:
raise
except:
pass
a = 0
b = test()
test2(a, b)
c = [a, b.hp]
print(c)
#[0,90]
funtion밖에서 try문은 에러가 나올때 그전까지 실행하고 except로 나와서 작동한다.
funtion안에서도 try문은 에러가 나올때 그전까지 실행하소 ecept로 나와서 작동한다.
허나 funtion안에서의 변수만 작동함으로 funtion 밖으로 나온후에선 변수가 초기화 되지만,
class-object는 id값을 그대로 받아서 작동됨으로, funtion안에서 작동된것은 그대로 유지된다.