๐Ÿ“š ์Šคํ„ฐ๋””/ํŒŒ์ด์ฌ ์Šคํ„ฐ๋”” ๊ณผ์ œ ์ œ์ถœ

[4ํŒ€/๊น€์œค] 8์ฐจ์‹œ ํŒŒ์ด์ฌ ๊ณผ์ œ - ๊ฐ์ฒด์ง€ํ–ฅ

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2023. 5. 19. 22:18

#1 ๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

class Company:
    def __init__(self):

        self.work = True
        self.name = "Jane"
        self.gender = "woman"
    def retire(self):
        self.work = False
    
class Employee(Company):
    def __init__(self, name, gender):
        super().__init__()
        self.name = name
        self.gender = gender

    def introduce(self):
        if self.work == True:
            print("I got a  job at a company")
            print("My name is", self.name)
            print("I am a", self.gender)
        if self.work == False:
            print("I left the company")

em = Employee("james", "man")
em.retire()
em.introduce()
Employee("james", "man").introduce()

-> ๋‹ต : 

I left the company

I got a job at a company
My name is james

I am a man

#1 ์‹คํ–‰๊ฒฐ๊ณผ

 

#2 ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์„ ๋•Œ, ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ ์•Œ๋งž์€ ๊ฒƒ์€?

class SoccerPlayer(object):
    def __init__(self, name, position, back_number):
        self.name = name
        self.position = position
        self.back_number = back_number
    def change_back_number(self, back_number):
        self.back_number =back_number

jinhyun = SoccerPlayer("jinhyun", "MF", 10)
print("ํ˜„์žฌ ์„ ์ˆ˜์˜ ๋“ฑ๋ฒˆํ˜ธ๋Š”:", jinhyun.back_number)
jinhyun.change_back_number(5)

-> ๋‹ต:

ํ˜„์žฌ ์„ ์ˆ˜์˜ ๋“ฑ๋ฒˆํ˜ธ๋Š”: 10

#2 ์‹คํ–‰๊ฒฐ๊ณผ

 

#3 ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์„ ๋•Œ, ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ ์•Œ๋งž์€ ๊ฒƒ์€?

class Marvel(object):
    def __init__(self, name, characteristic):
        self.name = name
        self.characteristic = characteristic
    def __str__(self):
        return f"My name is {self.name} and my weapon is {self.characteristic}"
    
class Villain(Marvel):
    pass
first_villain = Villain("Thanos", "infinity gauntlet")
print(first_villain)

-> ๋‹ต:

My name is Thanos and my weapon is infinity gauntlet

#3 ์‹คํ–‰๊ฒฐ๊ณผ

 

#4 ๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

class TV(object):
    def __init__(self, size, year, company):
        self.size = size
        self.year = year
        self.company = company
    def describe(self):
        print(self.company + "์—์„œ ๋งŒ๋“ " + self.year + "๋…„ํ˜•" + self.size + "์ธ์น˜" + "TV")

class Laptop(TV):
    def describe(self):
        print(self.company + "์—์„œ ๋งŒ๋“ " + self.year + "๋…„ํ˜•" + self.size + "์ธ์น˜" + "๋…ธํŠธ๋ถ")

LG_TV = TV("32", "2002", "LG")
LG_TV.describe()

samsung_microwave = Laptop("15", "2023", "Samsung")
samsung_microwave.describe()

-> ๋‹ต:

LG์—์„œ ๋งŒ๋“ 2002๋…„ํ˜•32์ธ์น˜TV

Samsung์—์„œ ๋งŒ๋“ 2023๋…„ํ˜•15์ธ์น˜๋…ธํŠธ๋ถ

#4 ์‹คํ–‰๊ฒฐ๊ณผ

 

#5 4๋ฒˆ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ์˜ ์„ค๋ช…์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋นˆ ์นธ์— ์•Œ๋งž์€ ๋‹จ์–ด๋ฅผ ๋„ฃ์œผ์‹œ์˜ค.

์œ„ ์ฝ”๋“œ์—์„œ Laptop ํด๋ž˜์Šค๋Š” TVํด๋ž˜์Šค๋ฅผ (๊ฐ€)ํ•˜์˜€๋‹ค. ๋˜ํ•œ, ๊ฐ™์€ ์ด๋ฆ„์˜ ๋‚ด๋ถ€ ๋กœ์ง์„ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑํ–ˆ์œผ๋ฏ€๋กœ (๋‚˜)์˜ ์‚ฌ๋ก€๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

-> ๋‹ต : (๊ฐ€) - ์ƒ์†, (๋‚˜) - ๋‹คํ˜•์„ฑ

 

#6 ๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

class Person:
    def __init__(self, name, age, position):
        self.Name = name
        self.Age = age
        self.Position = position
    def show_info(self):
        print(f"์ด๋ฆ„ : {self.Name}")
        print(f"๋‚˜์ด : {self.Age}")
        print(f"์ง์œ„ : {self.Position}")
        print(f"์ €๋Š” ํ•œ๋น›๋Œ€ํ•™๊ต {self.Position} {self.Name}์ž…๋‹ˆ๋‹ค. ๋‚˜์ด๋Š” {self.Age}์ž…๋‹ˆ๋‹ค.")

class Researcher(Person):
    def __init__(self, name, age, position, degree):
        Person.__init__(self, name, age, position)
        self.Degree = degree
    def show_info(self):
        Person.show_info(self)
        print(f"์ €๋Š” {self.Degree}์ž…๋‹ˆ๋‹ค.")

if __name__=="__main__":
    researcher_john = Researcher("John", "22", "์—ฐ๊ตฌ์›", "ํ•™์‚ฌ")
    researcher_tedd = Researcher("Tedd", "40", "์†Œ์žฅ", "๋ฐ•์‚ฌ")
    researcher_john.show_info()
    print("=" * 50)
    researcher_tedd.show_info()

-> ๋‹ต:

์ด๋ฆ„ : John

๋‚˜์ด : 22

์ง์œ„ : ์—ฐ๊ตฌ์›

์ €๋Š” ํ•œ๋น›๋Œ€ํ•™๊ต ์—ฐ๊ตฌ์› John์ž…๋‹ˆ๋‹ค. ๋‚˜์ด๋Š” 22์ž…๋‹ˆ๋‹ค.

์ €๋Š” ํ•™์‚ฌ์ž…๋‹ˆ๋‹ค.

==================================================

์ด๋ฆ„ : Tedd

๋‚˜์ด : 40

์ง์œ„ : ์†Œ์žฅ

์ €๋Š” ํ•œ๋น›๋Œ€ํ•™๊ต ์†Œ์žฅ Tedd์ž…๋‹ˆ๋‹ค. ๋‚˜์ด๋Š” 40์ž…๋‹ˆ๋‹ค.

์ €๋Š” ๋ฐ•์‚ฌ์ž…๋‹ˆ๋‹ค.

#6 ์‹คํ–‰๊ฒฐ๊ณผ

 

#7 ๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

class Terran(object):
    def __init__(self, mineral):
        self.scv = 4
        self.marine = 0
        self.medic = 0
        self.mineral = mineral
    def command(self, SCV=False):
        self.mineral += 8*self.scv
        if SCV:
            self.scv += 1
            self.mineral -= 10
    def barrack(self, Marine = False, Medic=False):
        self.mineral +=8*self.scv
        if Marine:
            self.marine += 1
            self.mineral -= 15
        if Medic:
            self.medic += 1
            self.mineral -= 15
    def check_source(self):
        print("Mineral: "+ str(self.mineral))

User = Terran(50)
User.command(True)
User.barrack(True, True)
User.check_source()

-> ๋‹ต:

Mineral: 82

#7 ์‹คํ–‰๊ฒฐ๊ณผ

 

#8 ๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

class IceCream(object):
    def __init__(self, flavor):
        self.flavor = flavor
    def change_flavor(self, new_flavor):
        print("์•„์ด์Šคํฌ๋ฆผ์„ %s์—์„œ %s๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”."% (self.flavor, new_flavor))
        self.flavor = new_flavor
        print("์•„์ด์Šคํฌ๋ฆผ ๋ง›์„ %s๋กœ ๋ณ€๊ฒฝํ•ด๋“œ๋ ธ์–ด์š”."%self.flavor)

ice_cream = IceCream("๋ ˆ์ธ๋ณด์šฐ ์ƒค๋ฒ ํŠธ")
ice_cream.change_flavor("๋ฐ”๋žŒ๊ณผ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง€๋‹ค")

-> ๋‹ต:

์•„์ด์Šคํฌ๋ฆผ์„ ๋ ˆ์ธ๋ณด์šฐ ์ƒค๋ฒ ํŠธ์—์„œ ๋ฐ”๋žŒ๊ณผ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง€๋‹ค๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”.

์•„์ด์Šคํฌ๋ฆผ ๋ง›์„ ๋ฐ”๋žŒ๊ณผ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง€๋‹ค๋กœ ๋ณ€๊ฒฝํ•ด๋“œ๋ ธ์–ด์š”.

#8 ์‹คํ–‰๊ฒฐ๊ณผ