본문 바로가기
기초다지기/기초 python

2023-04-20 pytho전역변수,지역변수,class

by jung1911 2023. 4. 20.

전역변수

 

함수 밖에서 정의한 변수

ex) a =10

 

 

지역 변수

 

함수 내에서 정의된 변수

함수가 호출되는 순간에만 존재한다.             

ex)   def test():

         b= 20 (지역 변수)

         print(b)         

함수 실행시 위 내용은 정의만 했을 뿐 실행하지 않음 

test() 를 실행해야함(들여쓰기 확인!)

   

 

class란?

 

1.class

  • 객체를 만들어 내기 위한 틀!

 

2.객체(object)

  • 구현할 대상
  • class의 instance 라고도 부른다.

 

3.인스턴스(instance)

  • 구현된 실체
  • 객체는 클래스의 인스턴스다. 쉽게 생각하면 인스턴스는 만들어진 복제본이라고 생각하면 된다.

 

 

class 정의

 

class test:  

    pass

 

자료형을 꾸미기 라고 생각하면 편하다. class는 위와 같이 정의하면 된다.


instance 생성

 

클래스를 이용해 인스턴스를 만들어주면 된다.

 

instan = test()  

 

class 이름에 괄호를 추가하여 인스턴스를 만들고 변수에(instan) 할당하는 방식이다.

 

 

객체

 

객체 인스턴스의 type을 확인하면 class 타입을 정해둔 test 의 클래스를 의미한다.

 

print(type(instan)) 을 출력한 type

 

 

 

 

 

 

 

클래스의 변수

 

정의나 이론을 따지면 점점 더 사용하기 힘들테니깐 간단한 예시를 사용해서 이해가 된다면 나중에 이론과 정의를 보는게 좋을거 같다.!

 

 

 

 

 

 

class 안에 code라는 변수를 정의 했다. 여기서 내가 다른 인스턴스로 호출을 하면 help라는 내용이 바뀔까?

정답은 안바뀐다 .    code 라는 변수는 언제나 똑같다고 이해하자.

 

 

 

 

methods

 

  • 메서드는 클래스 안에서!!!!!  정의된 함수
  • 메서드는 대체로 첫 번째 인수를 항상 self로 지정해야된다는데 바꿔도 상관없지만 일단 그렇다고 생각하자.
  • 일단 메서드도 마찬가지로 이론을 알기보단 어떻게 쓰이는지 파악하고 이론을 보면 금방익힌다.

 

 

일단 봐야할 부분은 메서드를 만든 부분보단 실행을 어떻게 했는지 중요하다. 

아까전엔 hello = test() 이런식의 인스턴스를 실행을 했다. 근데 메서드는 어떻게 사용할것인가?

분명 헷갈릴거라고 생각하기에 hello.helloworld() 부분을 생각하면 좋을거 같다.

 

 

생성자

 

클래스 호출할 때 자동으로 함수를 실행,호출 할 때 사용

메서드의 이름으로 주로 __init__ 사용 

밑에 예시

 

 

init () 안에 인자를 보면 이름 나이 성별 이렇게 추가가 됐다. 그냥 변수로 사용해도 되지만 왜 하는지 도무지 이해가 안 갈때도 있지만. 사용하는 이유는 편리하기 때문이다.

 

 

위 내용을 간략하게 설명하면 인스턴스 만들때 이름을 넣어주기 때문에 각 인스턴스의 이름에서 그 이름들을 가지고 올 수 있게된다.  밑에 예시를 보면 이해가 빠르다.

 

 

메서드를 추가해서 각각의 인스터스를 사용해서 이름을 나이를 성별을 self.이름 이라고 사용하면 그값이 출력이된다.

그러면 변수로 name = Human("이땡땡") 

 

 

 

 

 

'기초다지기 > 기초 python' 카테고리의 다른 글

2023- 04 - 21 python 알고리즘  (0) 2023.04.21
2023-04-17 python list  (0) 2023.04.18

댓글