2017-11-10 7 views
1

나는 전투에 기반한 게임을하고 있으며, 클래스 내에서 캐릭터의 통계를 할당했다. 다음은 그 예입니다.클래스의 메서드를 변수와 함수에 할당 할 때 어떻게 호출합니까?

class elf(): 
    def __init__(self): 
     self.attack = 1 
     self.defense = 2 
     self.speed = 3 

def function(): 
    global player 
    player = elf() 

print(player) 
print(player.attack) 

함수에있는 클래스 내에서 변수에 액세스 할 수 있도록 어떻게 코드 하시겠습니까? 당신이 player 액세스를 시도하기 전에 함수를 호출 한 경우 작업을 쓴 무엇

+1

'function()'을 호출하지 않았으므로 코드에서 오류가 발생합니다. –

+0

그럼 내가 어떻게 말합니까? print (function.player.attack)? –

+0

코드의 현재 추세에 따라 'function()'을 호출하면됩니다. 그러면'global' 변수가 생성됩니다. 그러나, 이것은 나쁜 습관입니다 ... 함수 내에서 가능한 한 전역을 생성하고 사용하는 것을 피해야합니다. 나쁜 습관입니다. –

답변

3

:

class elf(): 
    def __init__(self): 
     self.attack = 1 
     self.defense = 2 
     self.speed = 3 

def function(): 
    global player 
    player = elf() 

function() 
print(player) 
print(player.attack) 

하지만 (가능성이) 더 나은 방법이 global을 피하고 elf 인스턴스를 반환하는 것입니다.

class elf(): 
    def __init__(self): 
     self.attack = 1 
     self.defense = 2 
     self.speed = 3 

def function(): 
    return elf() 


player = function() 
print(player) 
print(player.attack) 

난 당신이 최소한의 예를 제공 한 실현, 그래서 인스턴스를 반환하는 것이 더 나은 방법이 있는지에 대한 말을 열심히하지만 가능성, 그리고 미래의 오류를 줄이는 데 도움이됩니다.

+0

그렇게해야합니다. 계산에서 사용할 수 있도록 클래스에서 통계를 가져와야합니다. –