전체 글369 파이썬 nonlocal 키워드 완벽 이해: 중첩 함수에서 변수 관리하기 파이썬을 사용하다 보면 중첩 함수(내부 함수)를 사용하게 되는 경우가 많습니다. 중첩 함수에서는 외부 함수의 변수에 접근하거나 이를 수정해야 하는 상황이 종종 발생하는데, 이때 사용하는 것이 바로 nonlocal 키워드입니다. 이 글에서는 nonlocal의 개념과 사용법을 자세히 설명하고, 이를 통해 변수 관리와 클로저 구현에 어떻게 활용할 수 있는지 알아보겠습니다.1. nonlocal 키워드란 무엇인가?nonlocal의 개념과 필요성nonlocal은 파이썬에서 함수 내에서 변수를 선언할 때 사용하는 키워드로, 중첩된 함수 내에서 바깥 함수에 선언된 변수를 참조하고 수정할 수 있도록 해줍니다. 만약 nonlocal 키워드를 사용하지 않으면, 중첩된 함수 내에서 변수를 할당할 때 새로운 지역 변수가 생성됩.. 프로그래밍공부(Programming Study)/파이썬(Python) 2024. 8. 9. 파이썬 클로저로 이해하는 데이터 은닉, 팩토리 함수, 데코레이터 패턴 클로저를 활용한 데이터 은닉, 팩토리 함수, 데코레이터클로저는 파이썬의 고급 프로그래밍 기법 중 하나로, 이를 통해 데이터 은닉, 팩토리 함수, 데코레이터와 같은 유용한 패턴을 구현할 수 있습니다. 각각의 개념을 클로저와 함께 어떻게 사용하는지 알아보겠습니다.데이터 은닉 (Data Encapsulation)데이터 은닉은 객체지향 프로그래밍에서 중요한 개념으로, 특정 데이터나 변수에 대한 접근을 제한하여 외부에서 직접적으로 변경하지 못하게 하는 방법입니다. 클로저를 사용하면 함수 내부에서만 접근 가능한 변수를 만들 수 있으며, 이를 통해 데이터 은닉을 구현할 수 있습니다.예를 들어,def make_counter(): count = 0 # 외부에서 접근할 수 없는 변수 def counter():.. 프로그래밍공부(Programming Study)/파이썬(Python) 2024. 8. 9. 파이썬의 일급 객체와 클로저 개념 이해 파이썬의 일급 객체와 클로저 개념 이해하기프로그래밍 언어에서 "일급 객체(First-Class Citizen)"라는 개념은 매우 중요한 개념입니다. 일급 객체란 프로그래밍 언어 내에서 다른 데이터 타입과 동일하게 취급될 수 있는 객체를 의미합니다. 이는 파이썬과 같은 고급 언어에서 매우 유연하고 강력한 기능을 제공합니다. 파이썬에서 일급 객체의 특성파이썬에서는 함수가 일급 객체로 취급됩니다. 일급 객체로 취급된다는 것은 함수가 다음과 같은 속성을 가질 수 있음을 의미합니다:변수에 할당 가능: 함수를 변수에 할당할 수 있습니다. 예를 들어, def greet(name): return f"Hello, {name}!" say_hello = greet print(say_hello("Alice")) #.. 프로그래밍공부(Programming Study)/파이썬(Python) 2024. 8. 9. sys.stdin.readline() vs input() in Python 파이썬에서 입력을 받을 때, 많은 사람들이 input() 함수를 사용합니다. 하지만 알고리즘 문제나 대량의 입력을 다룰 때는 sys.stdin.readline()이 더 효율적인 경우가 많습니다. 이 두 가지 방법의 차이점을 알아보겠습니다.sys.stdin.readline() vs input()1. 속도 차이sys.stdin.readline()은 더 빠른 속도를 제공합니다. 이 함수는 버퍼를 사용하여 입력을 처리하기 때문에, 반복적으로 많은 양의 데이터를 입력받아야 하는 상황에서 훨씬 더 효율적입니다. 반면, input()은 내부적으로 sys.stdin.readline()을 사용하지만, 추가적으로 개행 문자를 제거하는 작업이 포함되어 있어 상대적으로 시간이 더 소요됩니다.2. 입력 처리 방식sys.stdi.. 알고리즘공부(Algorithm Study)/기본개념(Concept) 2024. 8. 9. 시간 제한과 메모리 제한 알고리즘 문제에서 시간 제한, 메모리 제한을 반드시 고려해야합니다, 파이썬으로 문제를 풀 때는 다음과 같은 점들을 고려해야 합니다. 1. 시간 복잡도 • 시간 제한이 1초라는 것은 대략적으로 1초 내에 실행될 수 있는 연산의 수를 의미합니다. • 파이썬에서는 일반적으로 초당 약 1억 번(10^8)의 연산을 처리할 수 있다고 추정할 수 있습니다. • 시간 복잡도에 따라 처리할 수 있는 최대 입력 크기는 다음과 같이 예상할 수 있습니다: • O(1): 상수 시간, 입력 크기와 상관없이 즉시 처리 가능 • O(log N): 수백만 이상의 입력도 처리 가능 • O(N): 최대 약 10^7 ~ 10^8 크기의 입력을 처리 가능 • O(N log N): 최대 약 10^6 ~ 10^7 크기의 입력을 처리 가능 • .. 알고리즘공부(Algorithm Study)/기본개념(Concept) 2024. 8. 9. Ways of Variable Swapping Python에서는 tuple unpacking 방식으로 변수끼리 값을 스왑할 수 있다. C에서는 Temporary 변수를 활용해서 스왑하지만 Python은 그렇지 않아도 돼서 어떤 동작 원리가 숨어 있을까 궁금했다. https://swprog.tistory.com/entry/Python-tuple-unpacking-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%8A%9C%ED%94%8C-%EC%96%B8%ED%8C%A9%ED%82%B9 해당 글을 보고 tuple unpacking에 대해 알게 되었다. 그리고 궁금증 해결도 잠시... https://medium.com/@eliyazaidi16/exploring-7-different-ways-to-swap-variables-in-python-a2c.. 끄적끄적(Memo)/레퍼런스(reference) 2024. 3. 30. Github 인증 오류 해결 git pull을 하는데 해당 오류가 발생하였다. remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication. fatal: Authentication failed for '*' 원인은 1. github 정책에서 password 권한 인증 기준이 바뀐 것(2021.08.13일자 부로.. 끄적끄적(Memo)/레퍼런스(reference) 2023. 4. 9. [컴퓨터네트워크]15. Network Layer : Introduction, Virtual circuit and datagram, networks Network Layer Two key network-layer functions Interplay between routing and forwarding Network service model Connection, connection-less service transport 계층에서는 Process to process service 개념은 유사하지만 특징이 다름 Virtual circuits VC implementation call setup 시 : 이전 홉에게 - 앞으로 이 call setup request에 속하는 데이터그램이면 VC Number XX로 보내줘 => VC number가 달라짐 VC number가 다를 경우 - VC number 필드가 짧아질 수 있음 프로그래밍공부(Programming Study)/네트워크(Network) 2023. 4. 4. [컴퓨터네트워크]14. Principles of congestion control - TCP congestion control Principles of congestion control Causes/costs of congestion: scenario 3 Approaches towards congestion control single bit : 0 or 1 = 있다 없다. TCP congestion control TCP Slow Start TCP Congestion Avoidance 1MSS(1 maximum segment size) / CWND => 1 RTT 당 TCP: detecting reacting to loss TCP: switching from slow start to CA TCP throughput TCP Futures: TCP over "long, fat pipes" TCP Fairness Why is TCP f.. 프로그래밍공부(Programming Study)/네트워크(Network) 2023. 4. 3. [컴퓨터네트워크]13. Connection-oriented transport: TCP TCP reliable data transfer TCP sender events TCP ACK generation TCP fast retransmit TCP flow control Connection Management Agreeing to establish a connection ( 2-way handshake failure scenarios ) TCP 3-way handshake TCP: closing a connection 프로그래밍공부(Programming Study)/네트워크(Network) 2023. 4. 1. [컴퓨터네트워크]12. Connectionless transport: UDP, Principles of reliable data transfer, Connection-oriented transport: TCP Transport layer의 핵심 : process to process logical communicationdemux, mux) Connection-oriented demux UDP: User Datagram Protocol [RFC 768] UDP: segment header UDP checksum segment에 오류가 있을지도 모르겠다 정도만 알려줌 Summary of Reliable Data Transfer Mechanism TCP: Overview TCP segment structure TCP seq. numbers, ACKs TCP round trip time, timeout 출처 kocw 이화여대 컴퓨터네트워크(이미영 교수님) 프로그래밍공부(Programming Study)/네트워크(Network) 2023. 4. 1. [컴퓨터네트워크]11. Transport layer Transport services and protocols Internet transport-layer protocols Multiplexing/demultiplexing How demultiplexing works Connectionless demultiplexing 프로그래밍공부(Programming Study)/네트워크(Network) 2023. 3. 31. 이전 1 ··· 6 7 8 9 10 11 12 ··· 31 다음 728x90