파이썬 질문 있습니다.
글쓴이: cross / 작성시간: 토, 2008/05/17 - 9:35오전
에디터를 gedit를 씁니다.
vi는 아직 적응 중이고 해서 일단 가볍고 플러그인 깔면
쓸만해져서 이용하고 있는데요.
한가지 단점이 끄고 나면 끄기 전에 작업했던 창이
다시 시작할 때 나타나게 하는 플러그인이 없더군요.
그래서 그냥 파이썬으로 플러그인 하나 만들려고 하는데요.
문제는 제가 파이썬을 모른다는 거였죠.
그래서 이 기회에 파이썬 공부 좀 해보자 해서,
무대뽀로 이미 코딩되 있는 Gedit 플러그인을 살펴 봤습니다.
일단 자바하고 비슷한 점이 많은게 어느 정도는 이해가 가더라구요.
근데 self.~~~로 사용되는 메소드나 속성이 많았는데
이게 어떻게 쓰이는지 도무지 이해가 안가는 겁니다.
처음에는 이게 자신에게 있는 메소드를 불러 쓰는건가 하고
찾아보니 이게 자신에게 있는 것도 있고 없는 것도 있는 겁니다.
어쩌면 import 했었던 api에서 불러 쓰는게 아닌가 하고 살펴보니
역시나 있었는데 어떤 메소드는 self 없이 그냥 사용되는 것들도
있는 거 같고 도무지 헷갈려서 이해를 못하겠더군요.
그래서 파이썬에 대해서 잘 설명된 싸이트하고
self의 용도에 대해서 자세히 좀 알려 주실 분
계실거 같아서 여기에 글남깁니다.
Forums:
self
Python의 self는 Java의 this와 같은 뜻입니다. 메소드들은 첫번째 인자로 self를 받습니다.
Java와는 달리 Python에서는 메소드가 아닌 (어떤 클래스에도 속하지 않는) 함수를 정의할 수 있습니다.
답변 감사드립니다.
답변 감사드립니다.
근데 궁금한게 더 있는데요.
전역 변수가 아닌 메소드에서 정의된 속성값을 다른 메소드에서
self.~으로 사용할 수도 있는 건가요?
그리고 정의하지 않고 그냥 self.~식으로만 써놓고 여러 곳에서
사용하는 것 같기도 하고 말이죠.
예를 들어 self.docs가 있다면 docs란 속성이 없고 그냥
뜬금 없이 self.docs가 나와서 사용되는 겁니다.
그리고 더 구체적으로
self._config = self._dlg_conf.get_config()란 문구가 있는데
_config는 정의되어 있지 않구요.
좀 복잡하네요.
Python은 동적 타이핑
Python은 동적 타이핑 언어입니다.
C/C++이나 Java등과 같이 변수를 특정 형으로 선언해서 사용할 필요가 없이, 변수를 처음으로 사용하면 그때 그 변수가 선언되고 형은 그 변수에 대입되는 값에 의해 자동으로 결정됩니다.
일단 gedit에서 끈
일단 gedit에서 끈 파일을 다시 여는 플러그인은 있습니다.
session saver 라는 플러그인이 제공될겁니다.
우분투라면 apt-get install gedit-plugins 를 하시면 해당 플러그인들이 설치 될겁니다.
두번째 위에서 답변이 나왔지만, self는 객체 인스턴스의 메서드나 필드를 참조할때 사용하는 키워드는 맞습니다.
(self는 관습적인 이름인데,
def foo(self, arg1, arg2, **argn) 형태의 메서드 정의에서,
self라는 변수로 자신을 참조함을 명시적으로 지정하는것 뿐입니다.)
파이썬은 동적 언어이기 때문에, 메서드나 변수를 아무 위치에서나 추가 할 수 있으며, 객체 외부에서도 추가할 수 있습니다.
댓글 달기