본문 바로가기
에러 모음 및 해결

[ERROR | Python] AttributeError: 'builtin_function_or_method' object has no attribute 오류

by NpsCause 2022. 6. 4.
from random import random

def fresh_deck():
    suits = {"Spade", "Heart", "Diamond", "Club"}
    ranks = {"A", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K"}
    deck = []
    for s in suits:
        for r in ranks:
            card = (s, r)
            deck.append(card)
    random.shuffle(deck)		// <-- error
    return deck

에러코드


 

카드 덱을 만들고 카드를 섞어주는 함수를 작성하다가 셔플 함수에서 다음과 같은 에러가 발생하였다.

AttributeError: 'builtin_function_or_method' object has no attribute 'shuffle'

에러 문


해결방법

이유는 단순했다. 'shuffle' 함수가 있는 'random' 모듈을 from import로 불러왔기 때문이었다.

 

해당 코드가 정상적으로 작동되기 위해서는 

from random import random 이 아닌


import random 만 사용하거나

import random		// <-- 변경

def fresh_deck():
    suits = {"Spade", "Heart", "Diamond", "Club"}
    ranks = {"A", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K"}
    deck = []
    for s in suits:
        for r in ranks:
            card = (s, r)
            deck.append(card)
    random.shuffle(deck)
    return deck

from random import shuffle으로 사용해야 했다.

from random import shuffle		// <-- 변경

def fresh_deck():
    suits = {"Spade", "Heart", "Diamond", "Club"}
    ranks = {"A", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K"}
    deck = []
    for s in suits:
        for r in ranks:
            card = (s, r)
            deck.append(card)
    shuffle(deck)		// <-- 변경
    return deck

 

이걸로 30분을 날렸다니 정말 바보 같은 실수였다....

댓글