본문 바로가기
반응형

10. 클래스(class)/기초7

[파이썬 클래스] 원본 변수가 바뀌는 경우 해결 (copy 함수를 사용해야 하는 이유) 아래 코드를 봅시다. 어떻게 동작하는지 먼저 이해해봅시다. class add : def __init__(self,lst): self.lst=lst.append(5) a=[1,2,3,4,5] mcls=add(a) 위 코드는는 a를 [1,2,3,4,5,5] 으로 바꾸고 mcls.list 에는 아무것도 저장되지 않습니다. 결과는 아래와 같습니다 . >>> a [1, 2, 3, 4, 5, 5] >>> mcls.list list.append(5) 의 결과가 none 이기 때문입니다. 클래스 안의 def 에서 변수를 입력받을 때 참조해서 가져오기 때문에 append 를 적용하면 원본인 a가 바뀝니다. 변수를 참조가 아닌 복사해서 가져오는 방법은 아래와 같습니다. copy 함수를 사용하면 됩니다. class add .. 2023. 5. 25.
[파이썬 클래스] 원본 변수가 바뀌는 경우 해결 (copy 함수를 사용해야 하는 이유) 아래 코드를 봅시다. 어떻게 동작하는지 먼저 이해해봅시다. class add : def __init__(self,lst): self.lst=lst.append(5) a=[1,2,3,4,5] mcls=add(a) 위 코드는는 a를 [1,2,3,4,5,5] 으로 바꾸고 mcls.list 에는 아무것도 저장되지 않습니다. 결과는 아래와 같습니다 . >>> a [1, 2, 3, 4, 5, 5] >>> mcls.list list.append(5) 의 결과가 none 이기 때문입니다. 클래스 안의 def 에서 변수를 입력받을 때 참조해서 가져오기 때문에 append 를 적용하면 원본인 a가 바뀝니다. 변수를 참조가 아닌 복사해서 가져오는 방법은 아래와 같습니다. copy 함수를 사용하면 됩니다. class add .. 2023. 5. 25.
[파이썬] 클래스 정의할 때 self 대신 다른 이름를 써도 될까 self가 아닌 다른 이름을 사용해도 상관없습니다. class mycle : def __init__(self22): self22.name='hi' self22.age=15 self22.weight=75 관례적으로 self 를 쓰는 것인데, self 쓰지 않으면 코드가 많이 헷갈릴 겁니다. 2023. 5. 12.
[파이썬] 클래스에 정의된 인스턴스 변수 보는 법 (vars) 아래와 같은 클래스를 하나 정의합시다. class mycle : def __init__(self): self.name='hi' self.age=15 self.weight=75 인스턴스를 하나 만들어줍시다. model1=mycle() 인스턴스 변수는 아래와 같이 확인합니다. >>> vars(model1) {'name': 'hi', 'age': 15, 'weight': 75} 2023. 5. 11.
[파이썬] 문자열도 클래스다 (리스트,튜플,딕셔너리도) 파이썬에서 제공하는 문자열도 클래스입니다. 우리가 문자열을 정의하면, 문자열이라는 instance 가 만들어지는 것입니다. 문자열 클래스에 정의되어 있는 메소드들을 우리가 정의한 문자열에 사용할 수 있습니다. 문자열을 하나 정의해봅시다. mystr='HiHello' type 함수를 적용해봅시다. >>> type(mystr) str 이라는 class 라고 반환합니다. str 클래스에 있는 lower 메소드를 사용해봅시다. >>> mystr.lower() 'hihello' 문자열 뿐만 아니라 파이썬에서 제공하는 자료구조인 리스트,튜플,딕셔너리도 클래스입니다. 2023. 5. 11.
[파이썬] 클래스 만드는 방법 파이썬에서 클래스를 만드는 방법은 아래와 같습니다. 이해를 돕기 위해 변수를 몇개 정의하였습니다. class 클래스 이름 : def __init__(self,param1,param2,...) self.name='hi' #입력값 없이 정의해도됨 self.age=param1 #변수 이름과 입력값 이름 달라도됨 def 함수이름1(self,param1,param2,...) 파이썬 클래스의 특징을 살펴봅시다. 1) 클래스 이름은 CamelCase 로 짓는 것이 관례임. 2) __init__ 은 initialize 의 약어임. 초기화한다는 의미로, 변수들의 초기값을 지정하는 역할을 함. 3) __init__ 이 맨 위에 와야하는 것은 아님, 아래와 같은 구성도 가능. class mycle : def myfun1(s.. 2023. 5. 11.
[파이썬] 클래스와 객체지향 정말 쉽게 이해하기 클래스와 객체지향 프로그래밍 클래스는 리스트나 딕셔너리 처럼 데이터를 편하게 관리하기 위해 고안된 도구입니다. 그 성능이 워낙 강력해서 패러다임이 등장하기까지 했습니다. 클래스를 이용하여 프로그래밍하는 패러다임을 '객체지향 프로그래밍'이라고 합니다. 물론 클래스를 이용해야만 객체지향프로그래밍이 되는 것은 아닙니다. 객체지향은 더 포괄적인 개념이긴 한데, 좁은 의미로 쉽게 이해하면 클래스를 이용한 프로그래밍이라고 할 수 있습니다. 객체 지향 프로그램 = 클래스를 이용한 프로그래밍 넓은 의미의 객체지향 프로그래밍은 모든 것을 '객체'로 보고 프로그래밍 하겠다는 것입니다. 프로그래밍을 객체와 객체의 상호작용으로 생각하는 것입니다. 뭐든 넓은 의미는 이해가 어렵습니다. 백터의 좁은 의미가 '크기와 방향을 가진 .. 2022. 10. 1.
반응형