有没有办法在__init__
部分的类中定义一个值,将它发送到类之外的某个变量而不调用类中的另一个函数?
像
class c:
def __init__(self, a):
self.a = a
b = 4 # do something like this so that outside of class c,
# b is set to 4 automatically for the entire program
# when i use class c
def function(self):
... # whatever. this doesnt matter
我有多个具有不同b值的类。我可以制作一个告诉计算机改变b的列表,但我宁愿在每个类中设置b
答案 0 :(得分:1)
我不确定我是否正确理解了这个问题,但请尝试将此行添加到__init__
:
global b
在分配给b
之前,我的意思是。就像函数的第一行一样。
答案 1 :(得分:1)
从globals are bad开始,尝试一个类变量。 (你有什么理由不能吗?)例如:
class C(object):
def __init__(self,a):
self.a=a
C.b=4
或者,更好的是:
class C(object):
b=4
def __init__(self,a):
self.a=a
正如doublep建议的那样, global
将绑定到模块的全局变量。由于它仅限于模块名称空间,因此选项并不是那么糟糕。
答案 2 :(得分:0)
基本上,答案是否定的。您可以创建一个为您执行回调的父类,然后除了将b值传递给父类构造函数之外,您不需要考虑它。但除非你想使用全局变量(这不是一个好主意),否则无法从不是对象的构造函数返回值。