목록Programming Laguage/Python (12)
nathan_H
정규식에서 ?는 앞에 있는 식이 등장해도 돼도 안돼도 된다는 의미. ex) [0-7][2-5][2-9]? -> 이면 [2-9]라는 식은 등장유무에 상관없이 만족.(매칭 안돼도 상관 없다.) dir - > 해당 객체의 멤버 변수들 호출. p = re.compile("[1-8][0-9][1-8]") python console창에서 p.match("123") >> # 인터프리터 창에선 함수 리턴값을 보여준다. a = p.match("123") # a라는 변수에 객체 저장 print(a) >> a+ -> 1개 이상의 글자 = "a" -> 연속 했을때!! ex) >>> p = re.compile("a+") >>> p.match("a") >>> p.match("aaaa") >>> p.match("aaaaabaaaa..
python 모듈 파일 수정시 콘솔창에서 확인을 할때 파일 수정후에는 콘솔창에서 리로드 해줘야 수정한 내용을 반영해 불러올 수 있다. class user: def __init__(self): self.level = 1 self.power = 15 print("생성!") >>> from test import user >>> u1 = user() 생성! 클래스 내용 수정 class user: def __init__(self): self.level = 1 self.power = 15 print("유저 생성!") >>> u2 = user() 생성! 콘솔창을 재로드 하지 않은 상태에서 수정된 클래스를 가져오면 수정된 내용이 반영되지 않은 이전에 내용을 가져온다. 이를 해결하기 위해선 콘솔창을 끄고 다시 접속하거나..
class Mutal: def __init__(self): self.now_state = "mutal" self.hp = 100 self.attackt_rate = 10 @property def state(self): print("now state") return self.now_state @state.setter def state(self, select, upgrade=["gardian", 'devaurer']): print("upgrade complete") self.now_state = upgrade[select] print(__name___) if __name__ == "__main__": h1 = Mutal() print(h1.state) h1.state = 1 print(h1.state) __..
from collections import * *는 collections에 있는 것 모두 가져와라 everything이라는 의미를 가지고 있다. f = 3 print(f) def f(x): print(x + 1) print(f + 5) python은 인터프리터 방식이기 때문에 변수 이름 및 함수 이름등이 겹칠 경우 맨 아래에 있는 것을 기준으로 실행이된다. 그래서 python에서 변수명 및 함수명 선정은 겹쳐선 안되고 정말 중요하다.
자료구조에서 과하게 엔지니어링 하는 것을 피하는 것이 좋다. 그래서 객체보다는 튜플이 낫다. 그리고 여기서 객체 역활 처럼하는 튜플인 namedtuple을 알아보고자 한다. from collections import namedtuple User = namedtuple("User", "name age") # namedtuple(이름, 스페이스로 구분된 필드 이름의 문자열) user1 = User("nathan", 23) print(user1) print(user1.name) print(user1.age) user2 = user1._replace(age=24, name="dan") print(user2) # 네임드 튜플은 불변하지만 필드를 바꿔서 또 다른 네임드 튜플을 반환 할 수 있다. parts = {"..
python의 특징중 하나는 다형성을 느슨하게 구현했다. 이것은 클래스에 상관없이 같은 동작을 다른 객체에 적용할 수 있다는 것을 의미한다. class Char(): def __init__(self, name): self.name = name self.power = 15 self.level = 1 def says(self): return f"i am {self.name}!" def status(self): return f"power: {self.power} level: {self.level}" class CharChange(Char): def say(self): return f"i am {self.name}!" def status(self, power): self.power = power return f..
어떤 속성과 함수는 클래스 자신의 일보고, 어떤 것은 클래스로부터 생성된 객체의 일부다. 일반적으로 class 정의에서 method 첫번째 인자가 self라면 이 method는 instance method이다. 이것은 일반적으로 클래스를 생성할때의 메서드 타입이다. 이와 반대로 classmethod은 클래스 전체의 영향을 미친다. 클래스에 대한 어떤 변화가 모든 객체에 영향을 미친다는 것이다. 사용법은 아래 코드와 같다. class A(): count = 0 def __init__(self): A.count += 1 def exclaim(self): print("i'm an A!") @classmethod def kids(cls): print("a has", cls.count, "little object..