inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Python dành cho tất cả mọi người: Học ngữ pháp cơ bản Feat. Phát hành gói phần mềm nguồn mở (Inflearn Original)

Mô tả(2)

logging print 순서에 대한 질문입니다.

271

insut69

1 câu hỏi đã được viết

0

안녕하세요 수업을 따라하던 도중

import logging

logging.basicConfig(
                    format='%(asctime)s %(message)s',
                    level=logging.INFO,
                    datefmt='%Y-%m-%d %H:%M:%S'
)

class LoggedScoreAccess:
    def __init__(self, value=50):
        self.value = value

    def __get__(self, obj, objtype=None ):
        logging.info('Aceesing %r giving %r','score',self.value)
        return self.value

    def __set__(self, obj, value):
        logging.info('Updating %r giving %r','score',self.value)
        self.value = value



class student:
    # Descriptor instance
    score = LoggedScoreAccess()

    def __init__(self, name):
        # Regular instance attribute
        self.name = name
        


s1 = student("Kim")
s2 = student("Lee")

# 점수 확인(s1)
print('Ex2 > ', s1.score)
s1.score += 20
# print('Ex2 > ', s1.score)

 

다음과 같은 코드를 작성했는데

제 생각으로는 print('Ex2 > ', s1.score) 이후에

s1.score += 20

실행이 되었기 때문에

로그 순서가 수업과 같이 나오는게 맞다고 생각하는데

 

실제 print 되는 순서는

2023-10-09 19:23:54 Aceesing 'score' giving 50 2023-10-09 19:23:54 Aceesing 'score' giving 50 2023-10-09 19:23:54 Updating 'score' giving 50

Ex2 > 50

다음과 같이

log가 모두 출력된 후에 print가 나오게 됩니다.

 

어떻게 된건지 알 수 있을까요?

python

Câu trả lời 1

0

niceman

안녕하세요.

아래 부분까지 주석 해제하시고 실행하시면 이 순서가 맞습니다.

최초의 variable initialize -> 값 확인(get) -> access 출력

get-> updating -> access 출력입니다.

 

2023-10-10 00:31:08 Aceesing 'score' giving 50

Ex2 > 50

2023-10-10 00:31:08 Aceesing 'score' giving 50

2023-10-10 00:31:08 Updating 'score' giving 50

2023-10-10 00:31:08 Aceesing 'score' giving 70

Ex2 > 70

>

강의자료가 모두 동일한 PPT 입니다. 잘못 등록된것 같습니다.

0

56

2

나만의 패키지 만들기(1) 강의 결과물에서 이미지가 겹치는 문제는 다음과 같이 수정할 수 있을 것 같습니다

0

72

2

메타클래스 오류가 납니다

0

77

2

_ _ 관련 질문

0

70

1

변수 앞 _ 하나를 사용할때

0

142

2

가상환경 설정 시 vscode 실행 오류

0

505

2

이미지 에러 발생

0

318

1

에러발생합니다2

0

258

1

Error발생합니다1

0

285

1

pypi 배포 중 에러 발생

0

532

2

강의 부분이 틀렸네요. 수정 요청드려요!

0

467

2

@contextlib.contextmanager 어노테이션, 데코레이터

0

282

1

mount라는 의미가 정확히 무엇인지 모르겠습니다.

0

491

1

파이썬 lv3 의 py_ad_4_2.py 에서 Image를 열기만 하고 닫지는 않으셨습니다.

0

341

1

오픈소스참여-나만의 패키지 만들기

1

499

3

gitignore 파일이 없어요

0

318

1

property 사용시 동명의 속성이 이미 존재하면 어떻게 되나요?

0

269

1

variable scope 강의 Ex8 질문드립니다.

0

351

1

오픈소스참여-나만의 패키지 만들기(1)

1

567

2

s1, s2 점수 확인

0

462

2

질문

0

266

2

descriptor 변수 공유문제

0

280

1

multipledispatch 에러

0

391

1

Ex6과 Ex7 관련

0

221

1