相关疑难解决方法(0)

将变量的名称作为字符串

这个主题讨论如何在Python中将函数的名称作为字符串获取:如何在Python中将 函数名称作为字符串获取?

如何为变量做同样的事情?(注意Python变量没有属性__name__,至少在Python中retrieve_name)

换句话说,如果我有一个变量,例如:

foo = dict()
foo['bar'] = 2
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个函数/属性,例如'foo':

retrieve_name(foo) 
Run Code Online (Sandbox Code Playgroud)

返回字符串 __name__

更新:

既然人们在问我为什么要这样做,这里就是一个例子.我想在此列表中在Pandas中创建一个DataFrame,其中列名 由实际字典的名称给出:

# List of dictionaries for my DataFrame
list_of_dicts = [n_jobs, users, queues, priorities]
Run Code Online (Sandbox Code Playgroud)

python

112
推荐指数
13
解决办法
16万
查看次数

如何在Python中完全保存/读取类

som = SOM_CLASS() # includes many big difficult data structures
som.hard_work()
som.save_to_disk(filename)
#then later or another program
som = SOM_CLASS()
som.read_from_file(filename)
som.do_anythink_else()
Run Code Online (Sandbox Code Playgroud)

要么

som = SOM_CLASS()
save(som)
#...
load(som)
som.work()
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

python autosave class

10
推荐指数
2
解决办法
2万
查看次数

您可以从类中获取实例变量名称吗?

我知道你不应该在程序中使用变量名,但我使用的是严格的调试目的,并希望将变量的名称传达给用户以提高可读性。

我有一个这样的文件:

class MyClass(object):
    def __init__(self):
        pass

    def foo(msg=""):
        debug("Called from the %s instance.") #quazi-print function that only prints when a DEBUG variable is True.
        print(msg)

m = MyClass()
m.foo("Test")
Run Code Online (Sandbox Code Playgroud)

我想m从类本身中检索实例变量名称。虽然这只是一个示例文件,但我使用它向用户传达已在实例变量中的某个属性处创建了原始套接字,并希望显示它的位置(即New socket at m.socket

这对 Python 可行吗?

python class instance-variables instance

7
推荐指数
1
解决办法
1万
查看次数

如何在python中获取变量的字符串表示?

我在python中有一个变量x.如何从变量中找到字符串'x'.这是我的尝试:

def var(v,c):
  for key in c.keys():
    if c[key] == v:
      return key


def f():
  x = '321'
  print 'Local var %s = %s'%(var(x,locals()),x)  

x = '123'
print 'Global var %s = %s'%(var(x,locals()),x)
f()
Run Code Online (Sandbox Code Playgroud)

结果是:

Global var x = 123
Local var x = 321
Run Code Online (Sandbox Code Playgroud)

上面的食谱似乎有些不同寻常.是否有更好/更短的方法来实现相同的结果?

python introspection

6
推荐指数
2
解决办法
1万
查看次数

如何在C中取消设置变量以允许稍后使用具有不同数据类型的相同名称?

我想在C程序中使用相同的变量名和不同的数据类型而不进行强制转换.

我真的想这样做,不要问为什么.

那我该怎么办呢?
如果在进行预防性设置时该变量不存在,我该如何处理错误?

c variables unset

6
推荐指数
1
解决办法
7204
查看次数

在python中打印对象/实例名称

我想知道是否有一种方法可以将python中的对象名称打印为字符串。例如,我想说ENEMY1还剩2 hp或ENEMY2还剩4 hp。有办法吗?\

class badguy:
    def __init__(self):
        self.hp = 4

    def attack(self):
        print("hit")
        self.hp -= 1

    def still_alive(self):
        if self.hp <=0:
            print("enemy destroyed")
        else :
            print (str(self.hp) + " hp left")

    # creating objects

    enemy1 = badguy()
    enemy2 = badguy()

    enemy1.attack()
    enemy1.attack()
    enemy1.still_alive()
    enemy2.still_alive()
Run Code Online (Sandbox Code Playgroud)

python object

6
推荐指数
2
解决办法
1万
查看次数

如何从类中获取对象名称?

我有一个简单的类,我可以从中创建两个对象.我现在想要从类中打印对象的名称.所以像这样:

class Example:
    def printSelf(self):
        print self

object1 = Example()
object2 = Example()

object1.printSelf()
object2.printSelf()
Run Code Online (Sandbox Code Playgroud)

我需要这个打印:

object1
object2
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只是打印 <myModule.Example instance at 0xb67e77cc>

有人知道我怎么做吗?

python class object

4
推荐指数
1
解决办法
1424
查看次数

如何获取Python对象类的变量名称

我想知道这是否可能/如何可行.

我有一个Python对象类:

class myClass(object):
    def __init__(self):
        ...do something
Run Code Online (Sandbox Code Playgroud)

然后我创建该对象的实例:

myObjectClass = myClass()
Run Code Online (Sandbox Code Playgroud)

从内部myClass,是否可以将变量(myObjectClass)的"名称" 作为字符串?

谢谢,亚当

python variables class object

3
推荐指数
1
解决办法
5132
查看次数