gpt4 book ai didi

python - 在 Python 的 __init__(self) 中寻址实例名称字符串

转载 作者:太空狗 更新时间:2023-10-30 01:43:12 24 4
gpt4 key购买 nike

我正在做这样的事情:

class Class(object):
def __init__(self):
self.var=#new instance name string#

如何使我的实例的 __ init __ 方法使用“c”的实例名称字符串?以防万一:

c=Class()

我希望 c.var 等于 'c'。

感谢您的回复,我正在实现持久化,Class 是持久化对象的类。我希望 __ init __ 在以下情况下向数据库添加一个条目:

c=Class()

然后,假设:

del c

稍后:

c=Class()

如果已经有条目“c”,应该使用数据库中的数据创建一个实例,否则创建新条目。


感谢您的回复,我正在实现持久化,Class 是持久化对象的类。我希望 __ init __ 在以下情况下向数据库添加一个条目:

c=Class()

然后,假设:

del c

稍后:

c=Class()

如果已经有条目“c”,应该使用数据库中的数据创建一个实例,否则创建新条目。

最佳答案

Python 没有变量,它有 objects and names .当你这样做的时候

c = Class()

你在做两件事:

  1. 创建类型为 Class 的新对象
  2. 将对象绑定(bind)到当前作用域中的名称 c

你创建的对象没有任何“变量名”的概念——如果你以后有的话

a = c

然后可以使用名称 ac 以完全相同的方式访问同一对象。您可以删除名称 a,该对象仍然存在。

如果您创建的对象需要有名称,最好的方法是将名称传递给它们explicitly ,

class Class(object):
def __init__(self, name):
self.name = name

var = Class('var')

关于python - 在 Python 的 __init__(self) 中寻址实例名称字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/443775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com