Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 编辑*使用方法编辑类属性_Python_Python 3.x - Fatal编程技术网

Python 编辑*使用方法编辑类属性

Python 编辑*使用方法编辑类属性,python,python-3.x,Python,Python 3.x,很抱歉问了这么模糊的问题。我正在重写它,所以我希望这能有所帮助。 我试图编辑两个属性(即字典):a和b。 b与a直接相关(.8) 当我运行一个改变a和b的循环时,它工作一次,然后崩溃 "str" object has no attribute "a" 如果是调用它的函数(可能是),请告诉我。 但是,这是否可以根据a和b的当前值在每次迭代中更改它们 我希望这能更清楚地说明我的要求。您正在创建局部变量sell\u price,它不会影响cahnge\u price函数之外的sell\u pric

很抱歉问了这么模糊的问题。我正在重写它,所以我希望这能有所帮助。 我试图编辑两个属性(即字典):a和b。 b与a直接相关(.8)

当我运行一个改变a和b的循环时,它工作一次,然后崩溃

"str" object has no attribute "a" 
如果是调用它的函数(可能是),请告诉我。 但是,这是否可以根据a和b的当前值在每次迭代中更改它们


我希望这能更清楚地说明我的要求。

您正在创建局部变量
sell\u price
,它不会影响
cahnge\u price
函数之外的sell\u price

change\u price
中返回
sell\u price
。将
change\u price
的返回值显式分配给外部
sell\u price

def change_prices():
    for i in price:
        price[i][1] = math.floor(random.gauss(price[i][1], 5))
    sell_price = copy.deepcopy(price)
    for i in sell_price:
        sell_price[i][1] = math.floor(price[i][1] * .8)
    return sell_price

price = {1: ["Spices", 43], 2: ["Something else",50]}
sell_price = change_prices()
或者将sell_price声明为全局变量

def change_prices():
    global sell_price
    for i in price:
        price[i][1] = math.floor(random.gauss(price[i][1], 5))
    sell_price = copy.deepcopy(price)
    for i in sell_price:
        sell_price[i][1] = math.floor(price[i][1] * .8)

price = {1: ["Spices", 43], 2: ["Something else",50]}
sell_price = change_prices()

它的哪一部分应该改变你能接触到的任何东西?你的问题是什么?@Faller,你为什么要戏剧性地改变这个问题。这使我的答案过时了(
def change_prices():
    global sell_price
    for i in price:
        price[i][1] = math.floor(random.gauss(price[i][1], 5))
    sell_price = copy.deepcopy(price)
    for i in sell_price:
        sell_price[i][1] = math.floor(price[i][1] * .8)

price = {1: ["Spices", 43], 2: ["Something else",50]}
sell_price = change_prices()