调用类成员函数会产生TypeError

时间:2016-04-04 21:21:00

标签: python

我正在使用一个库,该库具有以下Python类的代码(由我自己编辑以查找最小的工作示例):

class Foo(object):

  def __init__(self):
    self._bar = 0

  @property
  def Bar(self):
    return self._bar

如果我然后运行以下内容:

foo = Foo()
x = foo.Bar()

我收到错误消息:

TypeError: 'int' object is not callable

所以,似乎错误告诉我它认为Bar()int,而不是函数。为什么呢?

2 个答案:

答案 0 :(得分:3)

function _isLocalhost(hostname) { // !! coerces the logical expression to evaluate to the values true or false. return !!(hostname === 'localhost' || // [::1] is the IPv6 localhost address. hostname === '[::1]' || // 127.0.0.1/8 is considered localhost for IPv4. hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)); } if (window.location.protocol === 'http:' && !_isLocalhost(window.location.hostname)) { // Redirect to https: if we're currently using http: and we're not on localhost. window.location.href = 'https:' + window.location.href.substring(window.location.protocol.length); } 是使用

的正确方法

属性将类方法转换为只读属性。

foo.Bar

答案 1 :(得分:2)

属性!这意味着当你将它作为属性获取时,它是返回值,如果你想让它成为一个方法,那么就不要把它变成属性。

使用属性只需使用foo.Bar,它将返回值。