본문 바로가기

Python283

Python 동일한 디렉토리 또는 하위 디렉토리에서 클래스를 가져오는 방법은 무엇인가요?, How to import the class within the same directory or sub directory? 질문 저는 모든 .py 파일을 저장하는 디렉토리를 가지고 있습니다. bin/ main.py user.py # 클래스 User가 존재하는 위치 dir.py # 클래스 Dir가 존재하는 위치 user.py와 dir.py에서 클래스를 main.py에서 사용하고 싶습니다. 어떻게 하면 이러한 Python 클래스를 main.py에 가져올 수 있을까요? 또한, user.py가 하위 디렉토리에 있는 경우 클래스 User를 가져오는 방법은 무엇인가요? bin/ dir.py main.py usr/ user.py 답변 파이썬 2 __init__.py이라는 빈 파일을 파일과 같은 디렉토리에 만드십시오. 이렇게 하면 Python에서 "이 디렉토리에서 가져올 수 있다"는 것을 나타냅니다. 그런 다음 다음을 수행하십시오. fro.. 2023. 6. 10.
Python 파이썬에서 "with open"을 사용하여 여러 파일을 어떻게 열 수 있나요?, How can I open multiple files using "with open" in Python? 질문 한 번에 여러 파일을 변경하려고 합니다. 그러나 모든 파일에 쓸 수 있는 경우에만 iff를 작성할 수 있습니다. 여러 개의 열린 호출을 with 문과 결합할 수 있는 방법이 있는지 궁금합니다: try: with open('a', 'w') as a and open('b', 'w') as b: do_something() except IOError as e: print 'Operation failed: %s' % e.strerror 그렇지 않은 경우, 이 문제에 대한 우아한 해결책은 무엇일까요? 답변 Python 2.7 (또는 3.1)부터는 다음과 같이 작성할 수 있습니다. with open('a', 'w') as a, open('b', 'w') as b: do_something() (역사적 참고: 이전.. 2023. 6. 10.
Python 객체 목록을 섞기 [중복], Shuffling a list of objects [duplicate] 질문 객체 목록을 섞는 방법은 무엇인가요? random.shuffle를 시도해보았지만: import random b = [object(), object()] print(random.shuffle(b)) 다음과 같이 출력됩니다: None 답변 random.shuffle은 작동해야합니다. 여기에는 객체가 목록 인 예제가 있습니다. from random import shuffle x = [[i] for i in range(10)] shuffle(x) print(x) # print(x) gives [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]] shuffle이 in place에서 작동하고 None을 반환한다는 것에 유의하십시오. 일반적으로 Python에서 가변 객체는 .. 2023. 6. 10.
Python 파이썬 코드가 함수에서 더 빠르게 실행되는 이유는 무엇인가요?, Why does Python code run faster in a function? 질문 def main(): for i in xrange(10**8): pass main() 이 파이썬 코드는 다음과 같습니다. (참고: 시간 측정은 리눅스의 BASH에서 time 함수를 사용합니다.) real 0m1.841s user 0m1.828s sys 0m0.012s 그러나 for 루프가 함수 내에 없으면, for i in xrange(10**8): pass 그러면 훨씬 더 오랜 시간 동안 실행됩니다: real 0m4.543s user 0m4.524s sys 0m0.012s 이유는 무엇인가요? 답변 함수 내부에서 바이트코드는 다음과 같습니다: 2 0 SETUP_LOOP 20 (to 23) 3 LOAD_GLOBAL 0 (xrange) 6 LOAD_CONST 3 (100000000) 9 CALL_FUN.. 2023. 6. 10.