__call__
메서드를 작성하면 클래스를 호출 할 수 있다.class Myclass:
def __init__(self, name):
self.name = name
def __call__(self):
print(self.name)
obj = Myclass("Alice")
obj() # __call__이 실행 -> Alice
class User:
def __init__(self, name, email):
self.name = name
self.email = email
user = User(name="Alice", email="alice@example.com")
# ✅ 기존 방식: 속성 직접 할당
user.name = "Bob"
# ✅ setattr()을 사용하여 동적으로 속성 할당
setattr(user, "email", "bob@example.com")
# for key, value in dict.items():
# if value :
# setattr(user, key, value) 이런식의 활용가능
print(user.name) # 출력: Bob
print(user.email) # 출력: bob@example.com
sorted(strings, key = lambda x: (x[n],x))
query = "INSERT INTO kream (category, brand, product_name, price) VALUES (%s, %s, %s, %s)" values = (i[0], i[1], i[2], i[3]) cursor.execute(query, values)
데이터 함수 조회할때 set함수에 넣어서 사용가능 하면 이게 제일 빠르다. list 안에 있는것을 조회하는 것이 더많은 시간을 소모한다
배열의 n번째를 기준으로 정렬하고, 같은값이 있으면 첫번째 값을 기준
def solution(strings, n):
return sorted(strings, key = lambda x: (x[n],x))
parts = line,split(' ',1) # 공백을 기준으로 첫번째 공백에서 나눔
dir() : 어떤 메서드를 사용할 수 있는지 출력됨
zip 함수는 그자체로 프린트 하면 zip object 으로 나온다 그래서 list 나 tuple, dict 으로 변환 시키고 프린트 해야 출력된다 아니면 그자리에서 바로바로 사용하거나
dictionary = dict(zip(name,yearning))
reduce(함수,초기값) 초기값을 설정안해주면 그냥 처음부터 사용가능 초기값을 설정 할 수 있음
길이가 4또는 6일때
-> len(s) in (4, 6) and s.isdigit()이렇게 표현가능
sort 메서드 소문자가 대문자보다 작게 정렬됨
def solution(s, n):
new_s = ''
for i in s:
if i.islower(): # 소문자 처리
new_s += chr((ord(i) - ord('a') + n) % 26 + ord('a'))
elif i.isupper(): # 대문자 처리
new_s += chr((ord(i) - ord('A') + n) % 26 + ord('A'))
else: # 공백 및 기타 문자 처리
new_s += i
return new_s