我有三个python文件:
a.py
theVariable = "Hello!"
b.py
import a
a.theVariable = "Change"
c.py
import a
while True:
print(a.theVariable)
我希望c.py打印出“ Change”而不是“ Hello!”。我该怎么办?为什么不做这项工作? 需要单独的文件,因为b.py将运行Tkinter gui。
解决方案:用套接字库完成。
答案 0 :(得分:2)
您可以使用类来获取具有某些状态的实例变量
a.py
class Foo():
def __init__(self):
self.greeting = "Hello"
并创建函数,以便您可以推迟对引用的操作
b.py
def changer(f):
f.greeting = "Change"
当您导入一个类然后将其传递给函数时,您正在传递对可以更改状态的内容的引用
c.py
from a import Foo
from b import changer
a = Foo()
for x in range(10): # simple example
if x > 5:
change(a)
print(a.greeting)
答案 1 :(得分:1)
a.py
library(tidyr)
x = c(1, 2, 3, 4)
y = c(1, 2, 3)
Data <- matrix(round(rnorm(12, 10, 4)), nrow = 4, ncol = 3)
Data <- as.data.frame(Data)
names(Data) <- c("1","2","3")
Data$x = c(1,2,3,4)
pivot_longer(Data, c("1","2","3"), names_to = "y", values_to = "z")
b.py
theVariable = "Hello!"
def change(variable):
theVariable = variable
c.py
import a
change('change')
我最近一直在与PyQt合作,效果很好。在orgin .py文件中设置函数会使其更加简单。