【问题标题】:I am getting NameError我收到 NameError
【发布时间】:2022-11-21 03:09:05
【问题描述】:
class Research:
    def __init__(self,x,z,x_prime,z_prime):
        self.String1="Hello"
        self.x = x
        self.z = z
        self.x_prime = x_prime
        self.z_prime = z_prime

class Child(Research):
    def distance(point1, point2):
        return math.sqrt(math.fsum((dim2-dim1)**2 for dim1, dim2 
        zip(point1,point2)))
        x=[[0.69424575, 0.33240389, 0.2884937 ]]
        z=[[0, 0, 0],
          [0, 0, 0.28849370487530057],
          [0, 0.33240389187301167, 0],
          [0, 0.33240389187301167, 0.28849370487530057],
          [0.6942457540745729, 0, 0],
          [0.6942457540745729, 0, 0.28849370487530057],
          [0.6942457540745729, 0.33240389187301167, 0],
          [0.6942457540745729, 0.33240389187301167, 0.28849370487530057]]
          distances = [distance(each_z, x[0]) for each_z in z]
          print(distances)

obj = Child()
obj.distance(point1,point2)


NameError: name 'point1' is not defined

这是使用类和继承概念对答案的修改。现在我得到 point1 is not defined after modification。那么如何调用那个距离函数?如果它显示 point1 is not defined。这里有什么我需要改变的吗

【问题讨论】:

  • 此代码看起来有不正确的缩进(这在 Python 中很重要)。请再次检查您在此处显示的代码是否与您实际运行的代码完全一样。
  • Child() 是什么?您在此处的代码定义了一个名为 Research 的类,但没有定义 Child。
  • 确实没有定义point1。为什么你会认为它是定义的?

标签: python


【解决方案1】:

将这两行放在 def 之外

distances = [distance(each_z, x[0]) for each_z in z]
print(distances)

【讨论】:

    【解决方案2】:

    我猜你不小心把函数放在了类之外

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2021-09-23
      相关资源
      最近更新 更多