在python中打印方法时,十六进制值意味着什么?
只是一个简单而快速的问题,我找不到答案。我有一个包含此方法的类:在python中打印方法时,十六进制值意味着什么?,python,class,methods,Python,Class,Methods,只是一个简单而快速的问题,我找不到答案。我有一个包含此方法的类: class Pokemon: "This is a pokemon class" number = 10 def birth(self): print('Hello') print(Pokemon.birth) 输出: <function Pokemon.birth at 0x7fc78c6e8160> 当我打印这个方法时,它返回一个十六进制数,这个
class Pokemon:
"This is a pokemon class"
number = 10
def birth(self):
print('Hello')
print(Pokemon.birth)
输出:
<function Pokemon.birth at 0x7fc78c6e8160>
当我打印这个方法时,它返回一个十六进制数,这个十六进制数到底是什么意思?内存位置?我试图理解代码背后的过程
警察局。我并不是想让这门课顺利进行,只是对魔咒的好奇
谢谢是的,这是内存地址。您还可以使用。获取它。是的,这是内存地址。您也可以使用。这是函数的内存地址 调用函数时需要使用括号。如果您不使用括号调用函数,解释器不会抱怨/崩溃,它只会告诉您拥有的是函数句柄,即您得到的消息、内存地址 顺便说一句,您可以使用id获取函数的十六进制内存地址
这是函数的内存地址 调用函数时需要使用括号。如果您不使用括号调用函数,解释器不会抱怨/崩溃,它只会告诉您拥有的是函数句柄,即您得到的消息、内存地址 顺便说一句,您可以使用id获取函数的十六进制内存地址
如果你想调用一个函数,你应该通过调用birth来调用它。你的电话只显示出生身份 为了使代码正常工作,您需要创建类的实例 pokemon是类pokemon的一个实例,所以您可以调用birth,它是实例方法。有关此主题的详细信息,请参阅
class Pokemon:
"This is a pokemon class"
number = 10
def birth(self):
print('Hello')
pokemon = Pokemon()
pokemon.birth()
如果你想调用一个函数,你应该通过调用birth来调用它。你的电话只显示出生身份 为了使代码正常工作,您需要创建类的实例 pokemon是类pokemon的一个实例,所以您可以调用birth,它是实例方法。有关此主题的详细信息,请参阅
class Pokemon:
"This is a pokemon class"
number = 10
def birth(self):
print('Hello')
pokemon = Pokemon()
pokemon.birth()
这个十六进制到底是什么意思?内存位置?
Yes是内存中对象的地址。它是用十六进制数字表示的,以使它更“易于阅读”
import sys
class Pokemon:
"This is a Pokemon class"
numner = 10
def birth(self):
print('Hello')
print(Pokemon)
#<class '__main__.Pokemon'>
print(Pokemon.birth)
#<function Pokemon.birth at 0x000001F83C177C10>
print(hex(id(Pokemon)))
#0x1f83bf6fad0
print(hex(id(Pokemon.birth)))
#0x1f83c177c10
print(Pokemon.birth.__repr__)
# <method-wrapper '__repr__' of function object at 0x0000018609D87C10>
引用计数和名称空间
下面的代码显示了Pokemon.birth对象离开的位置。它不在globals名称空间中,而是在“\uu main.\uu Pokemon”类名称空间中
print(globals()['Pokemon'])
# <class '__main__.Pokemon'>
print(Pokemon.__dict__['birth'])
# <function Pokemon.birth at 0x0000020D51167C10>
这个十六进制到底是什么意思?内存位置?
Yes是内存中对象的地址。它是用十六进制数字表示的,以使它更“易于阅读”
import sys
class Pokemon:
"This is a Pokemon class"
numner = 10
def birth(self):
print('Hello')
print(Pokemon)
#<class '__main__.Pokemon'>
print(Pokemon.birth)
#<function Pokemon.birth at 0x000001F83C177C10>
print(hex(id(Pokemon)))
#0x1f83bf6fad0
print(hex(id(Pokemon.birth)))
#0x1f83c177c10
print(Pokemon.birth.__repr__)
# <method-wrapper '__repr__' of function object at 0x0000018609D87C10>
引用计数和名称空间
下面的代码显示了Pokemon.birth对象离开的位置。它不在globals名称空间中,而是在“\uu main.\uu Pokemon”类名称空间中
print(globals()['Pokemon'])
# <class '__main__.Pokemon'>
print(Pokemon.__dict__['birth'])
# <function Pokemon.birth at 0x0000020D51167C10>
在你的代码中你遗漏了:1。类2的构造函数。创建类3的实例。呼叫出生。在你的密码中你漏掉了:1。类2的构造函数。创建类3的实例。呼叫出生。哦,谢谢分享@sabik。我对它进行了测试,它以10为基数返回内存地址。我在那里找不到它。谢谢。@AndresMitre-您可以使用十六进制函数或整数格式选项%x或{:x}将地址从id函数转换为十六进制。噢,谢谢您共享@sabik。我对它进行了测试,它以10为基数返回内存地址。我在那里找不到它。谢谢。@AndresMitre-您可以使用十六进制函数或整数格式选项%x或{:x}将地址从id函数转换为十六进制。噢,也许我不清楚@balderman。我只是想知道十六进制数字是关于什么的。原来是函数id。谢谢回答anyways@AndresMitre我的印象是,到最后你想激活出生,所以我发布了我的答案:-哦,也许我不清楚@balderman。我只是想知道十六进制数字是关于什么的。原来是函数id。谢谢回答anyways@AndresMitre我的印象是,到最后你想激活出生,所以我发布了我的答案:-谢谢你回答@Wasif。我不知道如何搜索这个问题……你在实际应用中是否需要id函数?@AndresMitre NopeThanks回答@Wasif。我不知道如何搜索这个问题……你在实际应用中是否需要id函数?@AndresMitre NopeThanks回答。最完整的答案。我认为当我们真正关心内存时,id函数在硬件或移动应用程序中可能很有用,但这些类型的应用程序通常需要其他语言的HDL。我真的不知道这什么时候有用。您是否使用过该函数?@AndresMitre-id在您出于某种原因需要对象的唯一标识符时非常有用,例如,在处理某些复杂数据结构时跟踪您是否已经看到它。@andres在实际的qord应用程序中肯定有一些用途。目前我只使用了
它用于调试目的或理解对象在处理后是否仍然相同。实际上就像使用Is操作符printa Is b,比如函数itertools.repeatn,它创建了无限多个obj i的拷贝,乘以n。然而,它们实际上是同一个对象。当我第一次使用它时,我通过打印每个项目的id来检查它。查找是同一个对象。实际上这里有一个SOO,显示了id函数的使用场景,感谢您的回答。最完整的答案。我认为当我们真正关心内存时,id函数在硬件或移动应用程序中可能很有用,但这些类型的应用程序通常需要其他语言的HDL。我真的不知道这什么时候有用。您是否使用过该函数?@AndresMitre-id在您出于某种原因需要对象的唯一标识符时非常有用,例如,在处理某些复杂数据结构时跟踪您是否已经看到它。@andres在实际的qord应用程序中肯定有一些用途。目前,我只将其用于调试目的,或者理解对象在处理后是否仍然相同。实际上就像使用Is操作符printa Is b,比如函数itertools.repeatn,它创建了无限多个obj i的拷贝,乘以n。然而,它们实际上是同一个对象。当我第一次使用它时,我通过打印每个项目的id来检查它。查找是同一个对象。实际上这里有一个SOO,它显示了id函数的一个使用场景