【问题标题】:How do I access a variable in an if statement from a different if statement in a function in a class in python如何从python类中的函数中的不同if语句访问if语句中的变量
【发布时间】:2022-08-19 18:51:44
【问题描述】:

我找不到访问 vrender 变量以从另一个 if 语句或另一个函数更改其值的方法。

这只是我对python不太了解吗?

from ursina import *

class voxel:
    value = 0
    x = 0
    y = 0
    z = 0
    def set(self,x,y,z,v):
        voxel.value = v
        voxel.x = x
        voxel.y = y
        voxel.z = z


    def object(self,type,other):
        if type == 1:
            vrender = Entity(model=\'cube\', scale=1,
                             color=rgb(voxel.value * 2.6 + 84, voxel.value * -8 + 84, voxel.value * -8.4 + 84),
                             position=(voxel.x, voxel.y, voxel.z), visable=False)
        if type == 2:
            if voxel.value > other:
                vrender.visible = False
  • 欢迎来到堆栈溢出。该变量不是“in”if 块。您应该阅读有关 Python 的教程,并确保您了解变量范围和变量寿命.在尝试编写类之前,您应该确保了解这些东西如何用于普通函数,并且在尝试使用诸如ursina 之类的第三方库制作游戏之前,您应该确保您了解所有这些东西。尝试完成教程。此代码中有多个问题,正确解释问题超出了 Stack Overflow 问题的范围。
  • 除了在type == 2 时没有定义voxel 之外,这段代码还有很多问题。您正在隐藏内置的 objecttype 名称,您在滥用实例变量与类变量,您的类缺少 __init__,等等。
  • 添加到已经说明的问题。 vrender可能不在if type == 2 中定义,因为可以在type 为1 之前调用该函数。

标签: python python-3.x ursina


【解决方案1】:

您必须使该变量成为全局变量(以便可以从您的代码中的任何位置访问它)或者它属于一个对象。 (作为一个懒惰的程序员,我推荐第二个,因为你只需要用一个变量做一个占位符类。我建议你做一个“控制器类”并存储所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2021-03-10
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多