NameError : 'a'이름이 정의되지 않았습니다. 같은 클래스 내 다른 함수의 변수 사용

xzhang66

이 BlackJack 프로그램을 수행하고 있으며 실행했을 때 Python이 다음과 같이 말합니다.

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    c2.bj_value()
  File "/Users/xuanruizhang/Desktop/lab_class_design.py", line 47, in bj_value
    s = PlayingCard(a,b)
NameError: name 'a' is not defined

그래서 문제는 bj_value (self) 함수에 있습니다. init 함수 에서 해당 순위 값을 반환하고 싶습니다 . 예 : c2 = PlayingCard (11, "c")이면 c2.bj_value ()는 10을 반환해야합니다.

class PlayingCard:
    def __init__(self, rank, suit):
        if rank == 1:
            self.rank = "Ace"
        elif rank == (2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 10):
            self.rank = rank
        elif rank == 11:
            self.rank = "Jack"
        elif rank == 12:
            self.rank = "Queen"
        elif rank == 13:
            self.rank = "King"
        if suit == "h":
            self.suit = "Hearts"
        elif suit == "s":
            self.suit = "Spades"
        elif suit == "c":
            self.suit = "Clubs"
        elif suit == "d":
            self.suit = "Diamonds"

    def get_rank(self):
        if self.rank == (2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 10):
            return self.rank
        elif self.rank == "Ace":
            return 1
        elif self.rank == "Jack":
            return 11
        elif self.rank == "Queen":
            return 12
        elif self.rank == "King":
            return 13


    def get_suit(self):
        if self.suit == "Hearts":
            return "h"
        elif self.suit == "Jack":
            return "j"
        elif self.suit == "Clubs":
            return "c"
        elif self.suit == "Diamonds":
            return "d"


    def bj_value(self):
        s = PlayingCard(a, b)
        if s.a == 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 10:
            return s.a
        elif s.a == 11 or 12 or 13:
            return 10



    def __repr__(self):
        return '%s of %s' % (self.rank, self.suit)

    def main():

        if __name__ == '__main__':
            main()

감사합니다!

aikramer2

새 클래스를 인스턴스화 할 필요가 없습니다. 원래 순위 값을 변수로 저장합니다 (이름 값 Jack, Queen 등을 저장하는 변수의 이름을 바꿔야합니다. bj_value 함수 내에서 self.rank에 액세스합니다.

class PlayingCard:
    def __init__(self, rank, suit):
        self.rank = rank

        if rank == 1:
            self.card = "Ace"
        elif rank in range(2, 11):
            self.card = str(rank)
        elif rank == 11:
            self.card = "Jack"
        elif rank == 12:
            self.card = "Queen"
        elif rank == 13:
            self.card = "King"
        if suit == "h":
            self.suit = "Hearts"
        elif suit == "s":
            self.suit = "Spades"
        elif suit == "c":
            self.suit = "Clubs"
        elif suit == "d":
            self.suit = "Diamonds"

....

    def bj_value(self):
        if self.rank in range(1,11):
            return self.rank
        elif self.rank in range(11,14):
            return 10

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python NameError : 'methodA'이름이 클래스 내의 멤버 메서드에 대해 정의되지 않았습니다.

분류에서Dev

파이썬의 클래스 내의 다른 함수에서 정의 된 (변수) 함수 내에서 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

Anytree 클래스 사용시 이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'file'이름이 정의되지 않았습니다. tkinter 스레드를 사용하는 동안

분류에서Dev

Python 3 exec 메서드 : NameError : 정의 된 함수의 이름이 정의되지 않았습니다.

분류에서Dev

같은 클래스 내의 다른 클래스 변수에서 클래스 변수를 설정합니까?

분류에서Dev

Python / 액세스 NameError : ''이름이 정의되지 않았습니다.

분류에서Dev

이전 함수는 다음 함수로 이어지지 않습니다. NameError : 이름이 정의되지 않았습니다.

분류에서Dev

Python의 NameError, 이름이 정의되지 않았습니다.

분류에서Dev

Python 클래스에 함수 이름이 정의되어 있지 않습니다.

분류에서Dev

같은 클래스의 다른 함수에서 __init__ 인수 사용

분류에서Dev

클래스 메소드에서 매개 변수로 목록 허용- 'selected_fields'이름이 정의되지 않았습니다.

분류에서Dev

NameError : '__file__'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'argparse'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'split'이름이 Spark에 정의되지 않았습니다.

분류에서Dev

NameError : 'players_data'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 공장 이름이 정의되지 않았습니다-Kivy

분류에서Dev

SQL Alchemy NameError : 이름 <table>이 정의되지 않았습니다.

분류에서Dev

NameError : 'end'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'boto3'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'heigth'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'pydotplus'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'Profile'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'years'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'discord'이름이 정의되지 않았습니다.

분류에서Dev

Tkinter : NameError : 'equation'이름이 정의되지 않았습니다.

분류에서Dev

NameError : 'vocab_size'이름이 정의되지 않았습니다.

분류에서Dev

NameError : ''이름이 .py / .kv에 정의되지 않았습니다.

분류에서Dev

NameError : 'con_db'이름이 정의되지 않았습니다.

Related 관련 기사

  1. 1

    Python NameError : 'methodA'이름이 클래스 내의 멤버 메서드에 대해 정의되지 않았습니다.

  2. 2

    파이썬의 클래스 내의 다른 함수에서 정의 된 (변수) 함수 내에서 변수를 사용하는 방법은 무엇입니까?

  3. 3

    Anytree 클래스 사용시 이름이 정의되지 않았습니다.

  4. 4

    NameError : 'file'이름이 정의되지 않았습니다. tkinter 스레드를 사용하는 동안

  5. 5

    Python 3 exec 메서드 : NameError : 정의 된 함수의 이름이 정의되지 않았습니다.

  6. 6

    같은 클래스 내의 다른 클래스 변수에서 클래스 변수를 설정합니까?

  7. 7

    Python / 액세스 NameError : ''이름이 정의되지 않았습니다.

  8. 8

    이전 함수는 다음 함수로 이어지지 않습니다. NameError : 이름이 정의되지 않았습니다.

  9. 9

    Python의 NameError, 이름이 정의되지 않았습니다.

  10. 10

    Python 클래스에 함수 이름이 정의되어 있지 않습니다.

  11. 11

    같은 클래스의 다른 함수에서 __init__ 인수 사용

  12. 12

    클래스 메소드에서 매개 변수로 목록 허용- 'selected_fields'이름이 정의되지 않았습니다.

  13. 13

    NameError : '__file__'이름이 정의되지 않았습니다.

  14. 14

    NameError : 'argparse'이름이 정의되지 않았습니다.

  15. 15

    NameError : 'split'이름이 Spark에 정의되지 않았습니다.

  16. 16

    NameError : 'players_data'이름이 정의되지 않았습니다.

  17. 17

    NameError : 공장 이름이 정의되지 않았습니다-Kivy

  18. 18

    SQL Alchemy NameError : 이름 <table>이 정의되지 않았습니다.

  19. 19

    NameError : 'end'이름이 정의되지 않았습니다.

  20. 20

    NameError : 'boto3'이름이 정의되지 않았습니다.

  21. 21

    NameError : 'heigth'이름이 정의되지 않았습니다.

  22. 22

    NameError : 'pydotplus'이름이 정의되지 않았습니다.

  23. 23

    NameError : 'Profile'이름이 정의되지 않았습니다.

  24. 24

    NameError : 'years'이름이 정의되지 않았습니다.

  25. 25

    NameError : 'discord'이름이 정의되지 않았습니다.

  26. 26

    Tkinter : NameError : 'equation'이름이 정의되지 않았습니다.

  27. 27

    NameError : 'vocab_size'이름이 정의되지 않았습니다.

  28. 28

    NameError : ''이름이 .py / .kv에 정의되지 않았습니다.

  29. 29

    NameError : 'con_db'이름이 정의되지 않았습니다.

뜨겁다태그

보관