【发布时间】:2016-07-10 16:14:38
【问题描述】:
我将以下类定义为:
def user_kitchen(handle):
# return a BeautifulSoup object
class User(object):
def __init__(self, handle):
self.handle = str(handle)
self.soup = user_kitchen(handle)
self.details = self.find_details()
def find_details(self):
value_map = {}
for detail, attribute in details_map:
value = (self.soup).find_all(attrs=attribute)[0].text
value_map[detail] = value
return value_map
当我将User 类实例化为:
me = User('torvalds')
我收到了NameError: name 'self' is not defined
这是回溯:
In []: me = User('torvalds')
NameError Traceback (most recent call last)
<ipython-input-61-f6d334f2ee24> in <module>()
----> 1 me = User('torvalds')
/home/user.py in __init__(self, handle)
28 value_map = {}
29 for detail, attribute in details_map:
---> 30 value = (self.soup).find_all(attrs=attribute)[0].text
31 value_map[detail] = value
32 return value_map
/home/user.py in _find_details(detail)
18
19
---> 20 class User(object):
21
22 def __init__(self, handle):
NameError: name 'self' is not defined
我看过一些类似的关于从__init__ 方法调用实例方法的问题:
但我无法解决这个问题。
【问题讨论】:
-
请发布完整的堆栈跟踪
-
@masnun 添加了它。感谢您的建议:)
-
堆栈跟踪中的行在您的代码 sn-p 中不可用。是否可以发布完整代码?
-
@masnun 也添加了它们
-
在您的堆栈跟踪中,我看到了这个
/home/user.py in _find_details(detail)- 您的代码中的_find_details(detail)方法在哪里?