본문 바로가기

Programming

(7)
Flutter StatefulWidget의 생명주기 Flutter에서 Widget이란 Flutter는 모든 화면을 Widget(위젯)을 통해 표현합니다. 상태변화가 없는 StatelessWidget과 상태 변화가 있는 StatefulWidget이 있는데, Stateful Widget의 생명주기는 상대적으로 더 복잡합니다. StatefulWidget 및 메서드 StatefulWidget는 화면이 변할 때마다 상태를 갱신할 수 있습니다.`StatefulWidget`는 상태를 가진 `State` 객체를 가지며, 이 상태 객체는 위젯의 수명 주기 동안 유지됩니다. 여기에는 `StatefulWidget`의 주요 생명 주기 메서드가 포함됩니다: createState (생성 메서드) - `StatefulWidget`가 최초로 화면에 나타날 때 한 번만 호출됩니다. -..
파이썬 이터러블 객체, 이터레이터, 제너레이터, 데코레이터 이터러블 객체 이터러블(iterable) 객체란 순회할 수 있는 객체를 말한다. 대표적으로 리스트, set, 딕셔너리 등이 있다. 또한 range의 리턴값도 이터러블 객체이다. 이터러블 객체 여부는 __iter__() 메서드의 유무로 확인할 수 있다. 또한 이터러블 객체는 for문에 넣으면 이터레이터로 사용할 수 있다. [1, 2, 3].__iter__() # 이터레이터 이터레이터는 다음 원소 하나하나에 접근할 수 있는 객체이다. __iter__() 메서드는 이터레이터를 반환한다. 모든 이터레이터는 이터러블 객체라고 할 수 있다. 이터레이터는 이터러블 객체와 달리 __next__() 메서드를 사용할 수 있다. iter = [1, 2, 3].__iter__() iter.__next__() #1 제너레이터 ..
파이썬 기초 함수(map, enumerate, zip, filter) map() map함수는 이터러블 객체를 입력받아 각각의 원소에 특정 함수를 적용한 결과를 반환하는 내장함수 이다. def square(x): return x * x numbers = [1, 2, 3, 4, 5] square_numbers = list(map(square, numbers)) print(square_numbers) # [1, 4, 9, 16, 25] 1, 2, 3.. 등의 원소가 각각 square의 인자로 전달되어, 제곱된 결과값들로 새로운 객체가 되어 반환되었다. enumerate() 리스트를 인자로 받고, 리스트의 각 원소에 인덱스를 부여해 튜플로 반환. for i in enumerate(list1): print(i) ''' (0, el1) (1, el2) ... ''' zip() ite..
아스키 코드 - 문자 간 변환 아스키코드 -> 문자열 변환 - chr() chr(65) # A chr(97) # a 문자열 -> 아스키 코드 변환 - ord() ord('A') # 65 ord('a') # 97
파이썬 변수 앞 * 연산자 리스트나 튜플 앞에 오는 * 연산자 - 언패킹(Unpacking) 연산자 리스트나 튜플과 같이 여러개의 값이 존재하는 변수의 이름 앞에 *이 오는 경우가 있다. 이 *은 언패킹(unpacking) 연산자라고 하는데, 각각의 요소를 분리해준다. 대표적으로 함수에서 파라미터를 전달할때 사용할 수 있다. def plus(a, b, c): return a+b+c a = [1, 2, 3] plus(*a) 딕셔너리의 언패킹 연산자 : ** 딕셔너리의 경우 ** 연산자가 언패킹 연산자이다. 함수 정의에서 인수 앞 * 연산자 인수의 개수를 지정하지 않고, 여러개의 인수를 가질 수 있는 가변 인수를 정의할때 사용된다. def my_sum(*args): res = 0 for i in args: res += i return..
__dict__ 와 __slots__ 파이썬에서 객체 또는 클래스들이 가지는 속성(멤버변수, 멤버메소드 등.. )과 값을 알고 싶을 때 객체.__dict__ 를 이용하여, 딕셔너리 타입으로 속성들을 알 수 있다. 그런데 이 말은 각 객체마다 저러한 메타정보를 가지고 있다는 것인데, 이는 메모리의 사용량이 상당히 많다는 것을 의미한다. 그래서 __slots__ 은 이러한 메모리의 부담을 줄이기 위해서 사용된다. 즉, __dict__를 생성하지 않는다. 또한 slots에서 지정한 속성에서 속성을 추가할 수 없게 제한한다. class PointCloud2(metaclass=Metaclass_PointCloud2): """Message class 'PointCloud2'.""" __slots__ = [ '_header', '_height', '_w..
Pylint Python 코드를 입력받아 코드가 얼마나 잘 작성되었는지 평가해주는 패키지. pylint testcode.py 위와 같이 파이썬 코드를 넣어 실행해주면, 코드에서 개선될 수 있는 부분을 라인별로 출력해주고, 얼마나 잘 작성되었는지 점수까지 매겨준다. 한편, 아래와 같은 주석을 파이썬 코드에 삽입하여 평가에서 해당 라인을 제외시킬 수도 있다. # pylint : disable=pylint평가명 예시) def main() : SpawnActor = a # pylint: disable=invalid-name ...