※ 주의
현재 제가 적는 게시글은 제가 잘 몰랐던 파이썬의 개념에 대해 적고 정리하는 글입니다.
그러므로 어느정도 기초적인 문법은 알고 있다는 전제하에서 글을 적습니다.
만약 문법을 전혀 모르신다면 아래 링크를 참고하시면서 봐주세용
동적타이핑이란 프로그래밍 언어에서 변수의 데이터 타입을 실행중에 결정하는 방식을 말합니다.
즉, 컴파일타임에 자료형 검사를 하게 된다면 정적타이핑이며 런타임시에 자료형 검사를 하게 되면 동적 타이핑입니다.
※ 프로그램이 자료형의 규칙을 지키는지 검증하는 과정을 자료형 검사라고 한다.
이해가 안되면 코드를 통해서 간단하게 알아보도록 합시다.
#include <stdio.h>
int main() {
int x = 10; // 정수형 변수 x를 선언하고 초기화
float y = 3.14; // 실수형 변수 y를 선언하고 초기화
printf("x: %d\n", x);
printf("y: %f\n", y);
return 0;
}
위의 코드는 C언어입니다.
C언어에서 int x와 float y라는 부분이 보일텐데 이렇게 int형과 float로 변수의 타입을 지정합니다.
public class Example {
public static void main(String[] args) {
int x = 10; // 정수형 변수 x를 선언하고 초기화
double y = 3.14; // 실수형 변수 y를 선언하고 초기화
System.out.println("x: " + x);
System.out.println("y: " + y);
}
}
위의 코드는 자바 코드의 일부 예시입니다.
자바 또한 int형과 double을 통해 변수의 타입을 지정합니다.
이렇게 코드를 기계어로 변환하는 과정 자체(= 컴파일 타임)에서 변수의 타입을 지정해주고 이를 검증하는 단계를 정적타이핑이라 합니다.
이제 파이썬을 한번 보도록 하겠습니다.
class Student:
def __init__(self):
self.name = None
self.ban = None
self.no = None
self.kor = None
self.eng = None
self.math = None
s = Student()
s.name = "홍길동"
s.ban = 1
s.no = 1
s.kor = 100
s.eng = 60
s.math = 70
total = s.kor + s.eng + s.math
average = float(total/3)
print("이름 : ", s.name)
print("총점 : ", total)
print("평균 : ", average)
여기서 클래스 부분에 name,ban,kor,eng,math와 같은 파라미터의 타입이 따로 지정이 안된것을 볼 수 있습니다.
이렇게 코딩시에 따로 변수의 타입을 지정하지 않고 컴파일러가(더 정확하게는 인터프리터) 동적으로 결정이 되는것을 동적 타이핑이라 합니다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
클래스와 객체 2번째 이야기 (0) | 2024.01.06 |
---|---|
클래스와 객체 1번째 이야기 (0) | 2024.01.02 |
NameSpace란? (0) | 2023.12.29 |
파이썬의 동작과정 (2) | 2023.12.27 |