如何在python中将值从一个脚本导入和更改为另一个脚本?

时间:2015-07-09 11:12:18

标签: python project

目前我在python中编码数字ATM。当我想创建一个具有可自定义余额值的用户时,我遇到了这个问题,但是在另一个python脚本文件中(让我们调用这个文件B)。在主脚本文件的函数中,它更改导入的值。问题是文件B中的值不会改变。我该怎么做才能完成这项工作?

所以有些变量是瑞典语。希望它不要打扰!

档案A

def overfor():
overforingsInput = float(input('Hur mycket vill du överföra?\n'))
if User1.saldo - overforingsInput > 0:
    User1.saldo - overforingsInput
print '-', overforingsInput, 'kr\n', 'Ditt saldo är nu', User1.saldo, 'kr'

档案B

class User1:
userName = 'felsaf'
userPin = 1234
saldo = 150

1 个答案:

答案 0 :(得分:0)

只需导入其他模块而不是变量:

a.py:

balance = 4711

b.py:

# do NOT use:
from a import balance
balance = balance + 1

# DO use:
import a
a.balance = a.balance + 1

但是模块a中的方法可能比仅使用其他模块全局变形更合适:

a.py:

_balance = 4711

def get_balance():
    return _balance

def set_balance(new_balance):
    _balance = new_balance

或在并发环境中:

from threading import Lock

_balance_lock = Lock()

class BalanceStale(Exception):
    pass

def set_balance_if_known_value_is_still_current(old_value, new_value):
    with _balance_lock:
        if _balance != old_value:
            raise BalanceStale('{} != {}'.format(_balance, old_value))
        else:
            _balance = new_value