StoryCode

'전체 글'에 해당되는 글 568건

  1. Dockerfile in WSL2, apt-update 오류
  2. static
  3. locals, return 될 변수를 동적으로 변경하는 방법

Dockerfile in WSL2, apt-update 오류

Docker, 도커
반응형

- archive.ubuntu.com 이나 security.ubuntu.com 접속 오류로 설치 실패시 해볼만한 옵션

 

$ cat Dockerfile

 

# Dockerfile
FROM ubuntu:22.04

# 네트워크 타임아웃 설정 추가
ENV DEBIAN_FRONTEND=noninteractive
ENV APT_CONFIG_TIMEOUT=120

# 패키지 업데이트 및 설치
RUN apt-get clean && \
    rm -rf /var/lib/apt/lists/* && \
    apt-get update --option Acquire::Retries=5 \
                   --option Acquire::http::Timeout=120 \
                   --option Acquire::https::Timeout=120 && \
    apt-get install -y \
    build-essential \
    git \
    wget \
    flex \
    bison \
    bc \
    libelf-dev \
    linux-headers-generic \
    && rm -rf /var/lib/apt/lists/*

# 작업 디렉토리 설정
WORKDIR /kernel_module

# 커널 모듈 개발에 필요한 파일들을 복사
COPY hello.c /kernel_module/
COPY Makefile /kernel_module/

반응형

static

Python, 파이썬
반응형

1) Python 에는 그런 거 없다. 다른 방식으로 비슷하게 구현해야 한다.

 

2-1)

def func(static_var = [0]):

       static_var[0] +=1

        return static_var[0]

 

# func 를 의도한대로 사용한 결과

print(func()) # 1 출력

print(func()) # 2 출력

 

# func 를 의도에서 벗어나 사용한 결과 문제점

print(func()) # 1 출력

print(func([10, 20, 30])) # 11 출력

print(func()) # 2 출력

 

2-2) 2-1 의 문제점 해결한 방식. class member variable 방식

def func()

    func.counter += 1

    return func.counter

 

func.counter = 0

처럼 하면 func 객체 ( def 라 함수지만 python 에서 모두 객체이다. counter 는 member 변수가 되고, 객체가 사라지지 않는 이상 유지된다. Ex> del func.counter)

 

2-3) 2-1 의 문제점 해결한 방식. nonlocal 방식. in 에서 out의 변수 참조가 존재할 수 있어서 변수 유지해줌.

def out_func():
    static_var = 0
     def in_func():
          nonlocal static_var # static_var 는 in_func 에서만 변경할 수 있다.
          static_var 十= 1
          return static_var
     return in_func

 

out_func()

반응형

locals, return 될 변수를 동적으로 변경하는 방법

Python, 파이썬
반응형

# locals 에는 메소드의 변수가 저장되어 있음. 이를 이용해서 returns 가 요구하는 변수들만 뽑아서 리턴할 수 있다.

def forward(x, f, h, returns):

    xf = x + f
    fh = f + h
    xfh = xf * fh

    result = xfh

 

    variables = locals()

    return tuple(variables[r] for r in returns)

 

a, b = forward(1,2,3, returns=("xf", "fh")) # xf 와 fh 를 리턴해달라 요구

d, e, f = forward(1,2,3, returns=("xf", "fh", "result")) # xf 와 fh오f result 를 리턴해달라 요구

반응형

'Python, 파이썬' 카테고리의 다른 글

static  (0) 2024.12.05
Debuggin,디버깅,pdb  (0) 2024.05.24
import directory 지정해주기  (0) 2024.04.19
csv 를 읽어 mysql create table 문장 생성  (0) 2024.03.16
..., :, Ellipsis  (0) 2023.09.21