- 순차적 프로그래밍이랑 절차적 프로그래밍은 다른 개념
Procedure
- 어떤 프로세스를 절차적으로 기술해 놓은 것
- 프로그램 목표를 수행하기 위한 일련의 작업이자 순서
객체는 어떤 행위의 대상이 될 수 있는 모든 사물
인스턴스는 클래스라는 추상적 틀에 만들어진 사물
class Cake: print.... a = Cake()a = Cake()에서 a는 객체이며 a 객체는 Cookie의 인스턴스
인스턴스는 어떤 클래스(Cake)의 어떤 객체(a)인지 관계 위주로 설명할 때 사용
즉 a는 객체, a는 Cake에 대한 인스턴스
class Emp:
name = ''
def __init__(self, name): #초기화작업=생성자역할
self.name=name
print('__init__(self, name) ',name)
def insert(self):
print('insert함수=' , self.name)
if __name__ == "__main__":
my = Emp('kim')
my.insert()
class Emp:
name = ''
def __init__(self):
pass
#self.name=name
def printAll(self):
user = '길동'
print('printAll함수 ' , user)
self.name = user
def emp_delete(self):
print('\nemp_delete함수')
print('삭제대상이름', self.name)
if __name__ == "__main__":
my = Emp()
# my.printAll()
my.emp_delete()
위의 코드처럼 클래스를 정의하면 my.printAll( )이 실행 되지 않으면 my.printAll( )의 user 변수를 사용할 수 없음
예시
# 숫자 제곱 처리
for a in range(1, 11,1):
print(a*a, end = '\t')
print()
print('='*100)
for b in range(1, 11, 1):
print(pow(b,2), end = '\t')
print()
print('='*100)
print('제곱처리를 list comprehension처리 ')
my_list = [c**2 for c in range(1,11)]
print(my_list)
print('='*100)
# 짝수만 나오게 하기
print([i for i in range(1,11,1) if i%2 == 0])
print('='*100)
#
names = ['kim', 'lee', 'park']
print([ name.upper() for name in names ])
message = ['spam', 'ham', 'spam', 'ham', 'spam']
dummy = []
# 축약X
for i in message:
if i == 'spam':
dummy.append(1)
elif i == 'ham':
dummy.append(0)
print(dummy)
print()
# 표현식 + for+조건문은 else, elif를 사용 못함
# print( [i for i in message if i== 'spam' 1 else 0])
print([1 if i == 'spam' else 0 for i in message])