питон пройти способ от classb в качестве аргумента класса а затем вызвать метод внутри класса из метода, то что было прошло

я знаю, что название звучит странно, но медведь со мной. им кодирование моя первая игра, и я пытаюсь создать класс для AI (так называемый AI_mode), что мой класс obj_creature можете использовать, чтобы получить любой вид АИ существо нуждается предприятие. им пройдя способ от AI_mode в качестве переменной obj_creature. метод это передается от AI_mode в obj_creature вызывает другой метод внутри класса obj_creature. heres некоторые урезанная код:

class obj_creature:
    def __init__(self, npc_mode=None):
        self.npc_mode=npc_mode

    def move(self, word):
        print(word)


class AI_mode:
    def ai_move_left(self):
        self.owner.move("Hello World")


enemy_ai=AI_mode().ai_move_left
enemy_creature=obj_creature(npc_mode=enemy_ai) 


if enemy_creature.npc_mode:
    enemy_creature.npc_mode()

этот код дает ошибку:

self.owner.move("Hello World")
AttributeError: 'AI_mode' object has no attribute 'owner'

im уверен .владелец() не правильно, чтобы использовать здесь, так как я никогда не заявляю obj_creature как владелец, но им не совсем уверен, что использовать в своем месте. когда я пытаюсь объявить obj_creature как владелец AI_mode вот так:

class obj_creature:
    def __init__(self, npc_mode=None):
        self.npc_mode=npc_mode
        if npc_mode:
            npc_mode.owner=self

я получаю эту ошибку:

npc_mode.owner=self
AttributeError: 'method' object has no attribute 'owner'

моей конечной целью является, чтобы сделать его легко присваивать любое время ИИ все из того же класса, к любому виду существо и быть в состоянии назвать, что ИИ был назначен к нему с одной и той же команде позже

+1
2019-09-18 08:03:51
источник
1 ответ

В то время как является допустимым свойством .Characters объекта, - это не суб-собственность он какой-то. Это свойство объекта самостоятельно. Поэтому следующие работал для меня:

Sub Tst()

Dim myDocument As Worksheet: Set myDocument = ThisWorkbook.Sheets("Sheet1")
Dim tx As Shape

Set tx = myDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 382, 266, 122, 20)
With tx.TextFrame.Characters
    .Text = mydocument.Cells(6, 8)
    .Font.Name = "Tahoma"
    .Font.Size = 10
    .Font.Bold = msoTrue
End With

End Sub
+1
2019-09-18 08:30:17

Посмотрите другие вопросы по меткам