본문 바로가기
프로그래밍 관련/파이썬

파이썬 클래스. 구조체

by 존버매니아.임베디드 개발자 2021. 12. 2.
반응형

1. 클래스 선언을 하되 선언만 해두고 안에 새부내용 없을 경우

pass를 사용

class Calculator():
    pass

 

2. 생성자가 없는 타입의 클래스

클래스를 선언할 때 생성자가 필수인 것은 아니다. 

class Test1():
    var1=1
    var2=2
    var3=3
    
    def fun1(self,input1,input2):
        print("출력값은 input1= %d, input2=%d" %(input1,input2))
        print("var1값은 %d " %self.var1)
        
        #참고중요사항
        print(var1값은 %d " %var1)  #이렇게하면 실행안된다. 클래스 안에 var1 선언돼있지만 self 안붙이면 인식못한다.
        


test_var=Test1()
test_var.fun1(5,6)

#출력결과:
 출력값은 input1= 5, input2=6
 var1값은 1

 

 

 

 

3. 매개 변수 없는 생성자를 사용하는 타입의 클래스

class Cal():
    def __init__(self):
        self.result=0
            
    def add(self,num1, num2):
        self.result=num1+num2
        print("Cal1 add result")
        print(self.result)

var1=Cal()

var1.add(3,5)

 

4 매개 변수 있는 생성자를 사용하는 타입의 클래스

class Cal2():
    def __init__(self, data1,data2):
        self.data1=data1
        self.data2=data2
        self.result=0

    def add(self):
        self.result=self.data1+self.data2
        print("data value is")
        print(self.result)

var2=Cal2(5,16)
var2.add()

#var3=Cal2() 이런식으로 쓰면 에러가 생긴다. 
#왜냐면 __init__ 생성자에서 파라미터 2개 data1,data2를 정의 했기 때문에, 
#객체선언 할 때 데이터 2개 넣어줘야 함

5. c 언어에서 사용하는 구조체 같은 자료형이 파이썬에 따로 없다. 클래스를 이용해서 적절하게 만들어 쓸 수 있다.

class py_struct():
    data1=0
    data2=5.4
    data3=16.2

str_val1=py_struct()

str_va1.data1=5
str_va1.data2=7.6

 

반응형