메타클래스 오류가 납니다
75
작성한 질문수 2
s2 = type('SampleB',(object,),dict(attr1='100', attr2='hi', add=lambda self,x,y:x+y))
s3 = s2()
print(s3.add(10,20))
위에처럼 작성헀는데 add함수에 오류가납니다
SampleB" 클래스의 "add" 특성에 액세스할 수 없음
특성 "add" 알 수 없음basedpyright 라고나오네요
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. daeyeon ko님.
작성하신 코드에서 발생하는 오류의 원인은 add 함수가 self를 예상하는데, 실제로는 이를 전달받지 못했기 때문입니다. add 함수가 lambda 함수로 정의되어 self 인자를 명시적으로 언급했지만, 호출할 때는 이를 자동으로 전달하지 않기 때문입니다.
이 문제를 해결하려면 add 함수를 클래스의 메서드로 정의하는 것이 좋습니다. type을 사용하여 클래스를 생성할 때, 일반적인 메서드 정의 방식을 따르려면 __init__ 함수 내에서 메서드를 추가하는 방법이 있습니다.
다음은 수정된 코드 예제입니다:
class SampleB(object):
attr1 = '100'
attr2 = 'hi'
def add(self, x, y):
return x + y
s3 = SampleB()
print(s3.add(10, 20))
이러한 형태로 메서드를 정의하게 되면 self가 자동으로 전달되며, 문제가 해결될 것입니다.
관련된 추가 정보를 원하시면, 다음 링크에서 더 많은 정보를 확인하실 수 있습니다: 클래스와 메서드에 관한 Pyright 오류 해결하기.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
강의자료가 모두 동일한 PPT 입니다. 잘못 등록된것 같습니다.
0
56
2
나만의 패키지 만들기(1) 강의 결과물에서 이미지가 겹치는 문제는 다음과 같이 수정할 수 있을 것 같습니다
0
72
2
_ _ 관련 질문
0
69
1
변수 앞 _ 하나를 사용할때
0
141
2
가상환경 설정 시 vscode 실행 오류
0
499
2
이미지 에러 발생
0
318
1
에러발생합니다2
0
258
1
Error발생합니다1
0
285
1
pypi 배포 중 에러 발생
0
531
2
강의 부분이 틀렸네요. 수정 요청드려요!
0
467
2
logging print 순서에 대한 질문입니다.
0
270
1
@contextlib.contextmanager 어노테이션, 데코레이터
0
282
1
mount라는 의미가 정확히 무엇인지 모르겠습니다.
0
488
1
파이썬 lv3 의 py_ad_4_2.py 에서 Image를 열기만 하고 닫지는 않으셨습니다.
0
341
1
오픈소스참여-나만의 패키지 만들기
1
499
3
gitignore 파일이 없어요
0
318
1
property 사용시 동명의 속성이 이미 존재하면 어떻게 되나요?
0
269
1
variable scope 강의 Ex8 질문드립니다.
0
351
1
오픈소스참여-나만의 패키지 만들기(1)
1
567
2
s1, s2 점수 확인
0
459
2
질문
0
265
2
descriptor 변수 공유문제
0
279
1
multipledispatch 에러
0
390
1
Ex6과 Ex7 관련
0
219
1





