【问题标题】:can you pass an unresolved argument to a class function in python?您可以将未解析的参数传递给python中的类函数吗?
【发布时间】:2021-02-19 15:03:00
【问题描述】:

我尝试将参数传递给类中的函数,通常当我将参数传递给函数时,我可以使用未解析的属性,如下所示:

    def noodle(spices):
        print(f"noodle with {spices})

根据我在使用该功能时选择输入的香料,该香料将在打印功能中使用,如下所示:

    noodle(salt)
    noodle with salt

但是当我尝试在课堂上做同样的事情时,pycharm 告诉我参数“玩家”未解决,我似乎无法在课堂外做同样的事情,在这里是我遇到问题的代码:

    from turtle import Turtle



    class Paddle(Turtle):

        def __init__(self):
            super().__init__()
            self.player1 = Turtle('square')
            self.create_paddle(self.player1)

        def create_paddle(self, player):
            self.player.penup()
            self.player.color('white')
            self.player.shapesize(stretch_wid=1, stretch_len=0.5)

我希望能够创建多个桨并重用该功能,但我的方法似乎不起作用,我不明白为什么

【问题讨论】:

  • player 是create_paddle() 的参数,而不是实例属性,因此您只需将其称为player。没有像 self.player 这样的东西被赋值。
  • @jasonharper 同意 除非 player 不应该是一个论点,create_paddle 应该引用 self.player1。无论哪种情况,都可以轻松解决
  • 我想过,但我实施错了,在你说我删除了自我之后。在播放器后面,它似乎工作正常:)

标签: python class


【解决方案1】:

谢谢你的帮助,解决方案确实很简单,看起来是这样的:

from turtle import Turtle


class Paddle(Turtle):

    def __init__(self):
        super().__init__()
        self.player1 = Turtle('square')
        self.create_paddle(self.player1)

    def create_paddle(self, player):
        player.penup()
        player.color('white')
        player.shapesize(stretch_wid=2, stretch_len=0.5)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    相关资源
    最近更新 更多