Python/Today I learned

TIL#13 변수

higher77 2021. 5. 13. 23:52

 

 

 

 

변수

다양한 변수 선언법

변수 할당 설명
object identity
변수 네이밍 규칙
예약

 

 

# 기본 선언
n = 700

# 출력
print(n) #700
print(type(n)) #<class 'int'> 정수형이다.

# 동시 선언
x = y = z = 700

# 출력
print(x, y ,z) #700 700 700

 

#type함수데이터타입(자료형)을 보여준다.

 

 

 

 

 

 

#선언
var = 75

# 출력
print(var) #75
print(type(var)) #<class 'int'>

# 재 선언
var = "Change Value" #기존에 선언된 값이 마지막에 선언된 값에 덮어 씌어진다.

# 출력
print(var) #Change Value
print(type(var)) #<class 'str'> 문자

 

 

 



# Object References(객체참조)


# 변수의 값  할당 상태일 때
# 1. 타입에 맞는 오브젝트 생성
# 2. 값 생성
# 3. 콘솔에 출력

# 예1)
print(300) #300 print(int(300))하고 같음


 #이 300이라는 것은 변수로 할당하지 않았다. 그렇기 때문에 이 함수 내에서 첫 번째로 타입에 맞는 오브젝트를 생성하고 두번째로 값을 생성하고 세번째로 콘솔출력 이러한 순서로 작동을 한다.

 #300은 int형이다. 이게 바로 오브젝트다. class형태로 내부적으로 이 300이라는 것을 int형으로 생성을 해서 그 다음에 값을 만들고 그 다음에 콘솔에 나오는 3단계를 걸치는 것이다.

 



# 예2)
# n -> 777
n = 777
#<class 'int'>형을 만들고 값 777을 넣는다.

print(n) #777
print(type(n)) #<class 'int'>
#최종적으로 print문에서 값을 출력한다.

 

 

 

m = n
# m-> 777 <- n

print(m, n) #777 777
print(type(m), type(n))#<class 'int'> <class 'int')

m = 400
# m-> 400, 777 <-n

print(m) #400
print(type(m)) #<class 'int'>

 

 

 



# id(identity)확인 : 객체(object)의 고유값 확인

m = 800
n  = 655

print(id(m))#140460940621328
print(id(n))#140460940621424
print(id(m) == id(n)) #false


m = 800
n  = 800

# 같은 오브젝트 참조
print(id(m)) #140460940621328
print(id(n)) #140460940621328
print(id(m) == id(n)) #True


#이름은 다른 변수에 똑같은 값이 할당 돼 있을 때는 하나의 오브젝트(똑같은 하나의 인스턴스)로 생성해버린다.(효율성을 위해)

 

 

/////////////////////////////////////////////////////////////////////////////////

 

 

[객체와 인스턴스의 차이]

 

클래스로 만든 객체인스턴스라고도 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? 이렇게 생각해보자.

a = Cookie() 이렇게 만든 a는 객체이다. 그리고 a객체는 Cookie()의 인스턴스이다.

즉 인스턴스라는 말은 특정 객체(a)가 어떤 클래스(Cookie)의 객체인지를 관계 위주로 설명할 때 사용한다.

"a는 인스턴스"보다는 "a는 객체"라는 표현이 어울리며

"a는 Cookie의 객체"보다는 "a는 Cookie의 인스턴스"라는 표현이 훨씬 잘 어울린다.

 

 

////////////////////////////////////////////////////////////////////////////////////

 

 



# 다양한 변수 선언
# Camel Case :  numberOfCollegeGraduates 첫글자 소문자 그다음 연결되는 단어의 첫번째는 대문자 Method를 선언할 때 주로 사용한다.
# Pascal Case :  NumberOfCollegeGraduates 첫글자 대문자 연결되는 단어의 첫번째도 대문자 주로 class를 선언할 때 주로 사용한다.
# Snake Case :  number_of_college_graduates 전부소문자 변수를 선언할 때 주로 사용한다.

# 허용하는 변수 선언 법
age = 1
Age = 2
aGe = 3
AGE = 4
a_g_e = 5
_age = 6
age_ = 7
_AGE_ = 8


#특수문자나 숫자로 시작하는 변수는 사용하지 못한다. ex)1AGE = 7
#$, _등의 특수문자는 허용한다.
#숫자로는 시작하지 말고 웬만하면 소문자나 snake case형태로 변수를 선언하는게 깔끔한 코드를 만들 수 있다.

 

 

 

 


예약어는 변수명으로 불가능

"""
False def if raise
None del import return
True elif in try
and else is while
as except lambda with
assert finally nonlocal yield
break for not
class from or
continue global pass
"""