为了账号安全,请及时绑定邮箱和手机立即绑定

我可以将 self 设置为被忽略的东西吗?

我可以将 self 设置为被忽略的东西吗?

慕森王 2022-05-11 17:08:03
我正在使用 Python 类中的代码编写代码。例如,像这样:    self.ulist = {}    for i in self.vlist:        if i not in self.ulist:            self.ulist[i] = {}            self.ulist[i]['appears'] = []我测试代码的方式是有时我只想将代码片段复制到 Jupyter 或 ipython 中并运行代码。我可以将 self 设置为什么,使其不会给出name 'self' is not defined错误?我知道您可以将 self 设置为任何东西,因为 self 是一个变量,我们可以将“self”设置为忽略它并将变量self.ulist, self.vlist视为 的东西ulist, vlist吗?
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

实际上,任何用户定义的对象都可以(没有定义 a __slots__)。Python 用户定义的对象很乐意接受您希望分配给它们的任何属性。或者,您也可以只使用一个SimpleNamespace对象:


In [1]: from types import SimpleNamespace


In [2]: self = SimpleNamespace()


In [3]:     self.vlist = {}

   ...:     for i in self.vlist:

   ...:         if i not in self.ulist:

   ...:             self.ulist[i] = {}

   ...:             self.ulist[i]['appears'] = []

   ...:


In [4]: self

Out[4]: namespace(vlist={})

至少有一个很好的开箱即用的印刷表示。


但同样,你总是可以这样做:


In [5]: class Foo: pass


In [6]: self = Foo()


In [7]:     self.vlist = {}

   ...:     for i in self.vlist:

   ...:         if i not in self.ulist:

   ...:             self.ulist[i] = {}

   ...:             self.ulist[i]['appears'] = []

   ...:


In [8]: self

Out[8]: <__main__.Foo at 0x105fde048>


In [9]: self.vlist

Out[9]: {}


查看完整回答
反对 回复 2022-05-11
  • 1 回答
  • 0 关注
  • 247 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信