Передача переменной, созданной в классе, функции в том классе, в котором переменная определена как глобальная переменнаяPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Передача переменной, созданной в классе, функции в том классе, в котором переменная определена как глобальная переменная

Сообщение Anonymous »

Изначально, перед использованием класса, я мог легко передать переменную a в функцию fit_func_simple_a_fixed() следующим образом ( определяется как глобальная переменная в функции):

Код: Выделить всё

import pandas as pd
import math
from scipy.optimize import curve_fit
import numpy as np

time = [i for i in range(0, 9)]
cumulative_rate = [0, 0.14, 0.28, 0.36, 0.43, 0.50, 0.57, 0.60, 0.62]

df = pd.DataFrame({'time': time,
'cumulative_rate': cumulative_rate})

def fit_func_simple_a_fixed(x, b):
global a
x2 = -b*x
def fun(input):
return(1-math.exp(input))
x3 = np.array(list(map(fun, x2)))

return a*x3

# Code before using a class
a = 0.8
x = np.array(df.time)
y = np.array(df.cumulative_rate)
params = curve_fit(fit_func_simple_a_fixed, x, y)
print(params)
Это сработало хорошо. Однако, когда я меняю часть после # кода перед ... на:

Код: Выделить всё

class Curve_Fit():
def __init__(self, data):
self.data = data

self.param = self.fit_curve()

def fit_curve(self):
a = 0.8
x = np.array(self.data.time)
y = np.array(self.data.cumulative_rate)
params = curve_fit(fit_func_simple_a_fixed, x, y)

return params

Curve_Fit(data=df)
Неудивительно, что я получаю сообщение об ошибке NameError: имя 'a' не определено. Я не могу определить вне класса, поскольку он вычисляется в самом классе для разных групп. Есть ли способ заставить это работать (возможно, даже путем передачи каким-то образом в Curve_fit(fit_func_simple_a_fixed, x, y))?

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-which-th
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему SCS говорят, что переменная не определена, хотя переменная уже была определена?
    Anonymous » » в форуме CSS
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как решить проблему, связанную с тем, что глобальная переменная не определена в Python?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Глобальная переменная не может быть определена Python
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • NameError: переменная не определена, хотя она определена и работала раньше
    Anonymous » » в форуме Python
    0 Ответы
    53 Просмотры
    Последнее сообщение Anonymous
  • NameError: переменная не определена, хотя она определена
    Anonymous » » в форуме Python
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»