// 코드삽입위한것

https://ponyozzang.tistory.com/439

 

Python 파일, 폴더 복사(shutil) 사용 방법 예제

파일을 복사하거나 폴더를 복사하고 싶은 경우가 있습니다. copyfile, copy, copy2 함수를 사용해서 복사가 가능합니다. 하지만 조금씩 차이가 있습니다. 파일 복사 하기 파일을 복사하는 copyfile, copy,

ponyozzang.tistory.com

 

궁금해서 구글링을 했더니 아래와 같은 이유가 있었다

 

new-style 클래스와 old-style클래스의 차이입니다. 클래스 스타일은 파이썬 버전에 따라서 다음과 같이 나뉩니다.

Python 3.x:

  1. class MyClass(object): new-style 클래스
  2. class MyClass: new-style 클래스 (명시하지 않아도 자동으로 상속)

Python 2.x:

  1. class MyClass(object): new-style 클래스
  2. class MyClass: >>>>OLD-STYLE 클래스<<<<

old-style과 new-style은 python2.2부터 구분하기 시작했습니다.

그 전까지 쓰이던 old-style은 이름 그대로 이제 너무 오래되어서 3.x 부터는 존재하지 않기 때문에 python3.x 에서 base클래스를 정의할 때는 object를 굳이 표기하지 않아도 괜찮습니다.

문제는 이 3.x코드를 2.x코드에 쓸 때 발생합니다. 2.x에서 obeject를 표시하지 않으면 이 클래스는 old-style로 간주됩니다.

old-style클래스와 new-style클래스는 아주 다르고 이는 프로그램에 생각지도 못한 문제를 야기할 수 있기 때문에 귀찮더라도 호환성을 위해서 꼭 (object)를 표기해주세요.

 

<출처>

 

object는 왜 상속받는 건가요?

클래스를 선언할 때 이름 뒤에 (object)를 써서 object를 상속받는 이유가 뭔가요? 어떤 코드에서는 저걸 써주고 어떤 코드에서는 안 써주는데 차이가 있나요? 소스코드 class MyClass(object): # 클래스 코드

hashcode.co.kr

 

 

1. ssh key 생성

$ ssh-keygen

생성하고자 하는 경로 지정

패스워드를 물어보면 그냥 엔터


2.ssh-agent가 실행되는지 확인

$ ps -e | grep ssh-agent

실행된다면

45445 ??         0:00.04 /usr/bin/ssh-agent -l     << 이렇게 보임

실행이 안된다면

$ ssh-agent /bin/bash

다시 실행되는지 확인


3.ssh-add를 이용 등록

$ ssh-add ~/.ssh/test_rsa

$ ssh-add -l

등록한 키가 보이는지 확인


4. ssh key copy(clip board copy)

mac os

$ pbcopy < ~/.ssh/test_rsa.pub

linux

$ cat ~/.ssh/test_rsa.pub

$ ssh-add ~/.ssh/bitbucket_add_ssh

출처: http://eminentstar.tistory.com/63 [EminentStar's Dev Wiki[블로그 이전: https://eminentstar.github.io ]]
$ ssh-add ~/.ssh/bitbucket_add_ssh

출처: http://eminentstar.tistory.com/63 [EminentStar's Dev Wiki[블로그 이전: https://eminentstar.github.io


5. bit bucket에 key 등록

bitbucket에 접속 아바타 클릭(저장소 아님, 개인 개정설정) >> Bitbucket 설정 >> ssh key

복사된 key 값을 붙여넣고 저장


이후 atom git-plus를 이용하건 terminal을 이용해 push를 하면 더이상 비밀번호를 물어보지 않음

귀찮은거 하나 해결

1. 부팅시 커널 선택창에서 'E' 키를 누름


2. linux16 으로 시작하는 문장 끝에 한칸 띄고 3을 입력


3. ctrl + x 입력


4. 텍스트 모드로 부팅 완료


PyQt4 로 UI를 제작하고 이벤트를 연결하면서 문제가 발생했다.

이벤트 연결부분에 함수를 연결하면서 함수자체를 던져야 했다.

connect(function(v,v,v)) 이런식이 아닌 connect(function)요렇에 보내야 한다.

하지만 나는 인자값을 같이 보내 처리하고 싶었다. 그렇게 하지 않으면 코드를 다 뜯어 고치고

잘 작동하게 만들 수 있을지 없을지도 모르는 상태에서 구글링을 통해 lambda 함수를 이용하면

인자값을 동시에 던져 작동하게 할 수있다는 사실을 알았다.

하지만 여기서도 문제는 발생했다. 그 해결 방법을 기록한다.



아래와 같이 for in 과 같은 loop 구문안에서 lambda 함수를 사용하면 

예상하지 않은 결과를 보여준다.

원하는 결과는 2,3,4 이지만 실행 결과는 4,4,4 이다

이문제는 함수와 변수의 point 문제로 인해 생긴다고 한다.


구글링을 통해 해결방법을 찾았다.

그러나 아래의 방법은 좋지 않다고 새로운 함수를 구현하는것이

좋다고 설명했다. 새로운 해결방법을 제시해 주지는 않았다.

실행해 보면 원하는 2,3,4의 결과를 얻을 수 있다.


위 문제를 해결하기 위한 괜찮은 방법을 원철군에게 제시받아

코드를 수정해봤다.


난 프로그래머가 아니라서 프로그래밍에 대한 기본지식이 거의 없다고 볼 수 있다.

그냥 코드 몇줄 적을줄 아는 허접한 실력이다.

아직 point가 뭔지도 잘 모르겠고 왜 저런 현상이 일어나는지 잘 이해도 못하고 있다.

대충 감만 잡고 있을뿐 그래서 작동원리에 대해서는 설명을 못하겠다.

머리아파 뒤지것다.

본격적으로 TD를 시작하면서 격는 성장통이라 생각한다.

프로젝트 생성 방법

1 Git에 접속해 new project를 생성한다


2. 로컬 드라이브에 git서버와 연동할 폴더를 만들고

터미널을열고 (해당폴더)

브라우저에 Create a new repository 부분에

git clone git@--.--.--.--:----/---- 를 

실행한다.


3 파이참에서 파일을 작성후 

처음 서버에 올리는 파일(붉은색으로 표시된 파일, 현재 서버에 존재하지 않는파일)

은 vcs>git>add 메뉴를 실행한다.  작성완료 후 vcs>commit명령 및 push 명령을

이용하여 서버에 upload한다



...


+ Recent posts