You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

控制台显示.obj文件时for循环出现TypeError: 'float' object is not callable

TypeError: 'float' object is not callable 错误解决

问题代码

vertices = [[2.4,5.6,2.1],[54.3,67.1,90.8],[21.9,73.5,12.3]]
def main():
  vertMinX = minmax(vertices, False)
  vertRangeX = minmax(vertices, True)-vertMinX
  for i in range(len(vertices)):
    print(1)
  normalize(vertices,vertMinX,vertRangeX)
  
def minmax(data, max):
  n=0
  val = data[0][n]
  if max:
    for i in range(len(data)):
      if val < data[i][n]:
        val = data[i][n]
  else:
    for i in range(len(data)):
      if val > data[i][n]:
        val = data[i][n]
  return val

def normalize(data, min, range):
  for i in range(len(data)):
    print(1)
main()

报错信息

1
1
1
Traceback (most recent call last):
  File "main.py", line 25, in <module>
    main()
  File "main.py", line 7, in main
    normalize(vertices,vertMinX,vertRangeX)
  File "main.py", line 23, in normalize
    for i in range(len(data)):
TypeError: 'float' object is not callable

错误原因

核心问题是参数名与Python内置函数重名:

  • normalize函数的第三个参数用了range,而range是Python内置的生成序列的函数。调用normalize时传入的vertRangeX是一个float值(计算得到的范围值),这会把函数内部的range变量覆盖成这个float对象。
  • 当执行for i in range(len(data))时,实际是在尝试调用这个float对象,自然触发"'float' object is not callable"错误。
  • 另外,min和max也是Python内置函数,用作参数名同样存在覆盖风险,只是这次没触发错误。

修复方案

修改参数名,避免与内置函数冲突:

vertices = [[2.4,5.6,2.1],[54.3,67.1,90.8],[21.9,73.5,12.3]]
def main():
  vertMinX = minmax(vertices, False)
  vertRangeX = minmax(vertices, True)-vertMinX
  for i in range(len(vertices)):
    print(1)
  normalize(vertices,vertMinX,vertRangeX)
  
def minmax(data, max_flag):
  n=0
  val = data[0][n]
  if max_flag:
    for i in range(len(data)):
      if val < data[i][n]:
        val = data[i][n]
  else:
    for i in range(len(data)):
      if val > data[i][n]:
        val = data[i][n]
  return val

def normalize(data, min_val, range_val):
  for i in range(len(data)):
    print(1)
main()

说明:

  • 将normalize的参数min改为min_val,range改为range_val
  • 将minmax的参数max改为max_flag,提前规避与内置max函数的冲突

内容的提问来源于stack exchange,提问作者Baby_Boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:42:10