python - 为什么可以在不表示'self'关键字的情况下初始化python类属性?
问题描述
class Foo():
def __init__(self):
pass
def makeInstanceAttribute(oops):
oops.x = 10
f = Foo()
f.makeInstanceAttribute()
print(f.x)
它正在打印10
,它是如何工作的?为什么oops
具有相同的存在效果self
?
解决方案
self
只是一个约定。它可以随心所欲地命名。实际上作为第一个参数传递给函数的是对象实例。考虑这段代码:
class A(object):
def self_test(self):
print self
def foo(oops):
print oops
>>> a = A()
>>> a.self_test()
<__main__.A object at 0x03CB18D0>
>>> a.foo()
<__main__.A object at 0x03CB18D0>
>>>
这个问题可能与您的问题有关,您可能会发现它有帮助。
推荐阅读
- machine-learning - 在强化学习中将离散动作转换为连续动作
- dictionary - Elixir 将键值对从 Map 连接到现有字符串(FDF 文件生成)
- java - 如何在允许选择更改之前验证数据?
- javascript - 离子刷新器与隐藏显示动画AngularJS冲突
- java - JBoss AS 5.1 通过 TLS 与 Websphere MQ 集成
- c# - 错误:验证时发生错误。HRESULT = '80070057'
- outlook -
没有加载新的前景 - c++ - 编写一个函数来删除单链表中的一个节点(除了尾部),只允许访问该节点
- wordpress - 如何将输入数据与重力表格的输入字段“街道地址”分开?
- mysql - 在过滤掉非数字字符的同时查询字段 - Laravel