在Python中,类对象可以在函数间共享通过以下几种方式实现:
class MyClass:
shared_value = 10
def my_method(self):
print(self.shared_value)
obj1 = MyClass()
obj2 = MyClass()
print(obj1.shared_value) # 输出: 10
print(obj2.shared_value) # 输出: 10
obj1.shared_value = 20
print(obj1.shared_value) # 输出: 20
print(obj2.shared_value) # 输出: 10
# 使用装饰器实现单例模式
def singleton(cls):
instances = {}
def wrapper(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return wrapper
@singleton
class MyClass:
shared_value = 10
def my_method(self):
print(self.shared_value)
obj1 = MyClass()
obj2 = MyClass()
print(obj1.shared_value) # 输出: 10
print(obj2.shared_value) # 输出: 10
obj1.shared_value = 20
print(obj1.shared_value) # 输出: 20
print(obj2.shared_value) # 输出: 20
global
关键字声明变量为全局变量。例如:shared_value = 10
def my_function():
global shared_value
print(shared_value)
my_function() # 输出: 10
shared_value = 20
my_function() # 输出: 20
以上是在Python中实现类对象在函数间共享的几种方式。根据具体的应用场景和需求,选择适合的方式来实现类对象的共享。
领取专属 10元无门槛券
手把手带您无忧上云