我正在使用一个库,该库具有以下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
,而不是函数。为什么呢?
答案 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
,它将返回值。