首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数中导致错误的索引没有属性getitim

函数中导致错误的索引没有属性getitim
EN

Stack Overflow用户
提问于 2018-01-09 11:03:54
回答 1查看 29关注 0票数 0

我是python初学者,我试图编写一个函数来计算格点的近邻,并收到以下错误:

格形,(y - 1) %N+格形,(y + 1) %N TypeError:“函数”对象没有属性“getitem

我在网上找到的任何解决方案似乎都与传递一个函数有关,而不是其结果,但我不知道这是如何发生的。

这是我的代码:

代码语言:javascript
复制
def lattice(N):
    lattice = np.random.rand(N,N)
    lattice = np.where(lattice <= 0.5, 1,-1)


def nearestneighbours(lattice, x, y):
    return lattice[(x - 1) % N, y] + lattice[(x + 1) % N, y] + \
       lattice[x, (y - 1) % N] + lattice[x, (y + 1) % N]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-09 11:16:18

  • 不要重用和覆盖函数和变量名。
  • 您应该确保lattice返回它创建的数组。
  • 有一些不一致。为什么lattice接受N作为参数,但nearestneighbours访问全局变量?
代码语言:javascript
复制
def lattice(n):
    arr = np.random.rand(n, n)
    arr = np.where(arr <= 0.5, 1, -1)
    return arr


def nearestneighbours(arr, n, x, y):
    return arr[(x - 1) % n, y] + arr[(x + 1) % n, y] + \
       arr[x, (y - 1) % n] + arr[x, (y + 1) % n]

N = 5
lat = lattice(5)
print nearestneighbours(lat, N, 2, 3) 
# 0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48166766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档