-
Notifications
You must be signed in to change notification settings - Fork 0
/
step10_class.py
80 lines (46 loc) · 1.64 KB
/
step10_class.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
class Developer:
# 모든 클래스 들이 사용할 수 있는 클래스 변수
skills = []
__max_sal = 100
# 인스턴스 메소드
def __init__(self, name):
self.name = name # 인스턴스 변수
# self.skills = []
# 인스턴스 메소드
def add_skills(self,skill):
self.skills.append(skill)
# 클래스 메소드
# @staticmethod
@staticmethod
def print_info(sal):
print('--@static--')
print(sal)
# print(skills) # NameError
# print(__max_sal) # NameError
# 클래스 메소드
# @classmethod(cls, ...)
@classmethod
def print_param(cls, param):
print('--@class--')
print(param)
print(cls.skills)
print(cls.__max_sal)
# front,back 기술들을 객체 추가 -> skill
front_dev = Developer('front')
front_dev.add_skills('js')
front_dev.add_skills('react.js')
back_dev = Developer('back')
back_dev.add_skills('spring')
back_dev.add_skills('JPA')
# Developer.print_info(100) # 클래스 메소드
# Developer.add_skills('spring') # 인스턴스 메소드
# Developer.print_param(100)
# 클래스 메소드 @static vs @class
# 클래스 변수 X vs O
# 사용 : 클래스 변수에 접근할 필요성이 있다면 @classmehtod 사용할 것!
Developer.print_info('@static')
Developer.print_param('@class')
method_set = {1,2,3}
method_set.update({4})
# print(method_set)
# print(set.union({1,2,3},{4}))