<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0330_15%EC%9D%BC%EC%B0%A8</id>
		<title>선미 파이썬 0330 15일차 - 편집 역사</title>
		<link rel="self" type="application/atom+xml" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0330_15%EC%9D%BC%EC%B0%A8"/>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0330_15%EC%9D%BC%EC%B0%A8&amp;action=history"/>
		<updated>2026-04-04T02:08:48Z</updated>
		<subtitle>이 문서의 편집 역사</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0330_15%EC%9D%BC%EC%B0%A8&amp;diff=168&amp;oldid=prev</id>
		<title>Azuremei: 판 1개를 가져왔습니다</title>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0330_15%EC%9D%BC%EC%B0%A8&amp;diff=168&amp;oldid=prev"/>
				<updated>2018-04-05T06:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;판 1개를 가져왔습니다&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='ko'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2018년 4월 5일 (목) 06:46 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ko'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(차이 없음)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Azuremei</name></author>	</entry>

	<entry>
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0330_15%EC%9D%BC%EC%B0%A8&amp;diff=167&amp;oldid=prev</id>
		<title>Shanmei: 새 문서: &lt;pre&gt; #10_OOP  #1. 클래스를 왜 사용할까? (클래스 사용하지 않고 코드 만들기) #자동차  두 대를 만들고 주행하는 함수를 만들어서 주행시킬...</title>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0330_15%EC%9D%BC%EC%B0%A8&amp;diff=167&amp;oldid=prev"/>
				<updated>2018-03-30T12:53:31Z</updated>
		
		<summary type="html">&lt;p&gt;새 문서: &amp;lt;pre&amp;gt; #10_OOP  #1. 클래스를 왜 사용할까? (클래스 사용하지 않고 코드 만들기) #자동차  두 대를 만들고 주행하는 함수를 만들어서 주행시킬...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#10_OOP&lt;br /&gt;
&lt;br /&gt;
#1. 클래스를 왜 사용할까? (클래스 사용하지 않고 코드 만들기)&lt;br /&gt;
#자동차  두 대를 만들고 주행하는 함수를 만들어서 주행시킬 것임&lt;br /&gt;
&lt;br /&gt;
#주행하는 함수 : 주행할 자동차의 모델, 최고속도 속도를 매개변수로 받음&lt;br /&gt;
'''&lt;br /&gt;
def dirve_car(model, max_speed, speed) :&lt;br /&gt;
    # 만약 주행할 자동차의 속도가 최고속도를 넘으면&lt;br /&gt;
    if speed &amp;gt; max_speed :&lt;br /&gt;
        print(&amp;quot;{}의 최고속도는 {}km입니다. 속도를 줄입니다&amp;quot;. format(model, max_speed))&lt;br /&gt;
        speed = max_speed # 최고속도 스피드를 조절&lt;br /&gt;
    print(&amp;quot;{}는 {}km로 주행합니다.&amp;quot;.format(model, speed))&lt;br /&gt;
cal1_model = &amp;quot;bmw&amp;quot;&lt;br /&gt;
cal1_max_speed = 200&lt;br /&gt;
car2_moeel = &amp;quot;tico&amp;quot;&lt;br /&gt;
car2_max_speed = 150&lt;br /&gt;
#위의 네 변수는 그저 변수명만 비슷하게 지었을 뿐 서로 아무 연관성이 없다. a, b, c, d로 했어도 상관 없다.&lt;br /&gt;
&lt;br /&gt;
drive_car(car1_model, car1_max_speed, 180)&lt;br /&gt;
drive_car(car2_model, car2_max_speed, 180)&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
#2. 클래스의 사용 (1)&lt;br /&gt;
class car : # 주행하는 기능이 있는 클래스로 설계&lt;br /&gt;
    pass # 클래스 사용하지 않음&lt;br /&gt;
'''&lt;br /&gt;
    def dirve_car(model, max_speed, speed) :&lt;br /&gt;
        # 만약 주행할 자동차의 속도가 최고속도를 넘으면&lt;br /&gt;
        if speed &amp;gt; max_speed :&lt;br /&gt;
            print(&amp;quot;{}의 최고속도는 {}km입니다. 속도를 줄입니다&amp;quot;. format(model, max_speed))&lt;br /&gt;
            speed = max_speed # 최고속도 스피드를 조절&lt;br /&gt;
        print(&amp;quot;{}는 {}km로 주행합니다.&amp;quot;.format(model, speed))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
car1 + car() #car 코드를 통해 인스턴스 생성,&lt;br /&gt;
#car1인스턴스에 속성(변수) 추가&lt;br /&gt;
car1.model = &amp;quot;bmw&amp;quot;&lt;br /&gt;
car1.max_speed = 200&lt;br /&gt;
#다른 객체지향 언어에서 이런 행위는 안된다. 이미 설계된 클래스를 통해서 만들어진 인스턴스에 속성을 추가할 수 없다. &amp;gt;설계뙨 대로만 사용할수 있음. 그러나 파이썬에서는 설께도에 없는 인스턴스를 사요할 수 있다&lt;br /&gt;
car1.a=1&lt;br /&gt;
car1.b=2 # 이런 코드는 안 된다.&lt;br /&gt;
&lt;br /&gt;
car2=car()&lt;br /&gt;
#코드를 여기까지만 보면 카원에는 모델, 맥스스피드 a b라는 네개의 속성이 있지만 카2에는 아무것도 없음&amp;gt;&amp;gt;&amp;gt;인스턴스별로 지닌 속성이 다를 수 있다(다른 언어와의 차잊덤)&lt;br /&gt;
#예를 들면 클래스로 이미 만들어진 자동차a에 썬루프를 사용하는 st&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
#2. 클래스의 사용 (1) 인스턴스에 속성(변수) 추가하기(다른 언어와의 차이점)&lt;br /&gt;
'''&lt;br /&gt;
class car : # 주행하는 기능이 있는 클래스로 설계&lt;br /&gt;
    def dirve_car(self, model, max_speed, speed) :&lt;br /&gt;
        # 만약 주행할 자동차의 속도가 최고속도를 넘으면&lt;br /&gt;
        if speed &amp;gt; self.max_speed :&lt;br /&gt;
            print(&amp;quot;{}의 최고속도는 {}km입니다. 속도를 줄입니다&amp;quot;. format(model, max_speed))&lt;br /&gt;
            speed = self.max_speed # 최고속도 스피드를 조절&lt;br /&gt;
        print(&amp;quot;{}는 {}km로 주행합니다.&amp;quot;.format(model, speed))&lt;br /&gt;
&lt;br /&gt;
car1=car()&lt;br /&gt;
car1.model = &amp;quot;bmw&amp;quot;&lt;br /&gt;
car1.max_speed = 200&lt;br /&gt;
#셀프 : 자기자신이 대입&lt;br /&gt;
#car1.drive_car(car1.model, car1.max_speed, 180)&lt;br /&gt;
#self, model을 사용하면 밖에서 생성한 카1.모델을 그대로 사용할 수 있다. 셀프는 카1이기 때문, 대신 속성을 생성하기 전에 사용하면 안된다.&lt;br /&gt;
#드라이브카가 호출되는 시점에는 셀프때문에 카원의 정보가 그대로 전달된다. 그러므로 위와 같이 모델, 맥스스피드를 굳이 쓸 필요 없어서&lt;br /&gt;
&lt;br /&gt;
car1.drive_car(180)&lt;br /&gt;
&lt;br /&gt;
#셀프를 쓰면 반드시 수행문 안에 셀프.를 붙여야함&lt;br /&gt;
car2=car()&lt;br /&gt;
car2.model = &amp;quot;tico&amp;quot;&lt;br /&gt;
car2.max_speed = 150&lt;br /&gt;
car2.drive_car(180)&lt;br /&gt;
&lt;br /&gt;
car3=car()&lt;br /&gt;
# car3.drive_car( 200) # 이렇게 하면 오류! 맥스스피드와 모델 속성이 없는 상태라 오류&lt;br /&gt;
#이러한 오류가 발생하는 이유는 매서드(드라이브_카)에서 공통적으로~~~&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
# 3. 클래스 사용 (2) 생성자&lt;br /&gt;
# 생성자 : 인스턴스 생성 시 '자동으로' 호출되는 매서드(함수) &amp;gt;&amp;gt;&amp;gt;자동으로 생성되기 때문에 무조건 호출&lt;br /&gt;
        #인스턴스 생성과 동시에 공통적으로 처리하고 싶은 코드를 작성&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
class car :&lt;br /&gt;
    #생성자 생성&lt;br /&gt;
    def __init__(self) : #__를 무조건 앞뒤로 사용(init :약자;초기화;프로그래밍에서 많이 사용)&lt;br /&gt;
        print(&amp;quot;저는 인스턴스 생성시 무조건 호출됩니다.&amp;quot;)&lt;br /&gt;
    def dirve_car(self, model, max_speed, speed) :&lt;br /&gt;
       if speed &amp;gt; self.max_speed :&lt;br /&gt;
            print(&amp;quot;{}의 최고속도는 {}km입니다. 속도를 줄입니다&amp;quot;. format(model, max_speed))&lt;br /&gt;
            speed = self.max_speed # 최고속도 스피드를 조절&lt;br /&gt;
        print(&amp;quot;{}는 {}km로 주행합니다.&amp;quot;.format(self.model, speed))&lt;br /&gt;
&lt;br /&gt;
car1= car()&lt;br /&gt;
#1 카()코드를 통해 인스턴스 '생성'(자동차 한 대)&lt;br /&gt;
#2. 이닛 생성자 함수(매서드)가 '호출'&lt;br /&gt;
#3. 카1=코드에 의해 인스턴스가 '대입'&lt;br /&gt;
&lt;br /&gt;
#우리가 카()&amp;lt;&amp;lt;이렇게 인스턴스를 생섷아는 행위는 생성자 함수를 호출하는 것&lt;br /&gt;
#생성자는 우리가 직접 만들지 않으면 기본으로 def__init__평태로 생성&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
#4. 클래스의 쇼ㅏ용 (3) 생성자를 통한 인스턴스의 변수 생성 및 초기갚 대입&lt;br /&gt;
&lt;br /&gt;
class car :&lt;br /&gt;
    #생성자 생성&lt;br /&gt;
    def __init__(self, model, max_speed) : #__를 무조건 앞뒤로 사용(init :약자;초기화;프로그래밍에서 많이 사용)&lt;br /&gt;
        self.model = model&lt;br /&gt;
        self.max_speed = max_speed&lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;저는 인스턴스 생성시 무조건 호출됩니다.&amp;quot;)&lt;br /&gt;
    def drive_car(self, speed) :&lt;br /&gt;
       if speed &amp;gt; self.max_speed :&lt;br /&gt;
            print(&amp;quot;{}의 최고속도는 {}km입니다. 속도를 줄입니다&amp;quot;. format(self.model, self.max_speed))&lt;br /&gt;
            speed = self.max_speed # 최고속도 스피드를 조절&lt;br /&gt;
       print(&amp;quot;{}는 {}km로 주행합니다.&amp;quot;.format(self.model, speed))&lt;br /&gt;
&lt;br /&gt;
        #self.~ 는 인스턴스에 속성을 추가&lt;br /&gt;
        # =model 는 매개변수, 전달된 값을 대입&lt;br /&gt;
        #&amp;gt;&amp;gt;&amp;gt;인스턴스에 속성을 생성하면서 전달된 값을 대입하겠다.&lt;br /&gt;
&lt;br /&gt;
#생성자는 함수이기 때문에 매개변수를 통해 값을 전달받을 수 있다. 이 때 전닯랃는 값은 인스턴스별로 다르게 전달하여 초기값을 다르게 대입할 수 있다.ㅣ&lt;br /&gt;
        #우리는 공통적으로 모델과 맥스스피드 속성을 사요할 예정 &amp;gt;&amp;gt;&amp;gt;생성자에서 생성&lt;br /&gt;
car1=car( &amp;quot;bmw&amp;quot;, 200)&lt;br /&gt;
car2 = car(&amp;quot;tico&amp;quot;, 150)&lt;br /&gt;
&lt;br /&gt;
car1.drive_car(180)&lt;br /&gt;
car2.drive_car(180)&lt;br /&gt;
&lt;br /&gt;
#클래스를 쓰지 않으면 첫 번채처럼 단순한 변수(연결고리 없는)를 만들어서 하나하나 대입해야 하는데 클래스를 쓰면 하나의 인스턴스에 공통된 속성을 설게하고 이 속성을 함수에 통째로 전달되어 별개로 있던 것들이 하나가 됨&lt;br /&gt;
&lt;br /&gt;
#클래스 연습&lt;br /&gt;
'''&lt;br /&gt;
    1. 학생 클래스 만들기(Student)&lt;br /&gt;
        속성(변수) : 이름name, 나이age, 전화번호phone, 과목sub&lt;br /&gt;
        기능(변수)&lt;br /&gt;
            1. 생성자&lt;br /&gt;
                이름, 나이, 전화번호, 과목을 전달받고 인스턴스에 속성 생성 및 대입&lt;br /&gt;
            2. 학생 정보 출력(print_info)&lt;br /&gt;
                이름 :홍길동&lt;br /&gt;
                나이 :20세&lt;br /&gt;
                전화번호 : 010-1234-5678&lt;br /&gt;
            3. 공부하기study&lt;br /&gt;
                홍길동 님이 파이썬 공부를 시작합니다.&lt;br /&gt;
            -3명의 학생 인스턴스를 만든 뒤 학생 정보를 출력하고 공부시키기&lt;br /&gt;
[예]&lt;br /&gt;
hong=student()라고 가정하고&lt;br /&gt;
hong.print_info()&lt;br /&gt;
hong.study() 이런 식으로&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
class student :&lt;br /&gt;
    def __init__(self, name, age, phone, sub=&amp;quot;파이썬~~!&amp;quot;) :&lt;br /&gt;
        self.name = name&lt;br /&gt;
        self.age = age&lt;br /&gt;
        self.phone = phone&lt;br /&gt;
        self.sub = sub&lt;br /&gt;
    def print_info(self) :&lt;br /&gt;
        print(&amp;quot;이름 : {} \n나이 : {} \n전화번호 : &amp;quot;.format(self.name, self.age, self.phone))&lt;br /&gt;
    def study(self) :&lt;br /&gt;
        print(&amp;quot;{}님이 {}을 공부중입니다&amp;quot;.format(self.name, self.sub))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hong= student(&amp;quot;홍길동&amp;quot;, 20, &amp;quot;01043322167&amp;quot;)&lt;br /&gt;
hong.print_info()&lt;br /&gt;
hong.study()&lt;br /&gt;
'''&lt;br /&gt;
    2. 계산기 클래스 만들기(Calc)&lt;br /&gt;
      &amp;gt;계산기의 인스턴스를 생성한다는 것은 하나의 계산기를 샀다고 가정하는 것&lt;br /&gt;
      &amp;gt;인스턴스를 하나 더 생성한다는 것은, 또 다른 계산기를 샀다는 것&lt;br /&gt;
&lt;br /&gt;
      - 속성 : 4개 &amp;gt;각 사친연산 계산의 수행 횟수를 기억하는 변수&lt;br /&gt;
              add_count, min_count, mul_count, dic_count&lt;br /&gt;
      - 기능 : 6개&lt;br /&gt;
            1. 생성자 :무엇을 해야할지 생각해보기&lt;br /&gt;
            2. 사칙연산 매서드들&lt;br /&gt;
            3. 계산 횟수 정보 출력(print_info)&lt;br /&gt;
&lt;br /&gt;
        &amp;gt;계산기 인스턴스 생성 후 내 마음대로 연산을 수행시킴&lt;br /&gt;
        &amp;gt;프린트 인포를 호출했을 때 위에서 수행시킨 횟수와 일치한 결과를 출력해야함&lt;br /&gt;
        &amp;gt;인풋으로 숫자 입력받지 말고 add(1, 2) 이런식으로 그냥 만들자&lt;br /&gt;
        &amp;gt;수행 횟수가 재대로 나오는지 확인하는게 중요&lt;br /&gt;
~~.add(1, 2)  &amp;gt;&amp;gt;1 + 2 = 3 출력&lt;br /&gt;
~~.add(3, 4)&lt;br /&gt;
~~.mul(10, 3)&lt;br /&gt;
덧셈 : 2&lt;br /&gt;
뺄셈 : 0&lt;br /&gt;
곱셈 : 1&lt;br /&gt;
나눗셈 : 0 &amp;gt;&amp;gt;&amp;gt;이렇게 사식연산 횟수 출력&lt;br /&gt;
&amp;gt;호출했을 때 쇳수(덧셈 몇번했는지 같은 것들)출력이 중요&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
class calc:&lt;br /&gt;
    def __init__(self, add_count, min_count, mul_count, div_count) :&lt;br /&gt;
        self.add_count = add()&lt;br /&gt;
        self.min_count = min()&lt;br /&gt;
        self.mul_count = mul()&lt;br /&gt;
        self.div_count = div()&lt;br /&gt;
    def add(a, b) :&lt;br /&gt;
        print(&amp;quot;{} + {} = {}&amp;quot;, format(a, b, a+b))&lt;br /&gt;
        return a+b&lt;br /&gt;
    def min(a, b) :&lt;br /&gt;
        print(&amp;quot;{} - {} = {}&amp;quot;, format(a, b, a-b))&lt;br /&gt;
        return a-b&lt;br /&gt;
    def mul(a, b) :&lt;br /&gt;
        print(&amp;quot;{} * {} = {}&amp;quot;, format(a, b, a*b))&lt;br /&gt;
        return a*b&lt;br /&gt;
    def div(a, b) :&lt;br /&gt;
        print(&amp;quot;{} / {} = {}&amp;quot;, format(a, b, a/b))&lt;br /&gt;
        return a/b&lt;br /&gt;
    def count (self) :&lt;br /&gt;
        print(&amp;quot;덧셈 : &amp;quot;.format(sys.getrefcount(add)))&lt;br /&gt;
&lt;br /&gt;
clac1 = clac&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shanmei</name></author>	</entry>

	</feed>