0

Django で Web アプリケーションを作成していますが、バージョン Python 2.6.6 ではエラーが発生しますが、2.7 では問題なく動作しています。

def check(attribute):
   global rates
   if (attribute.temperature_value < rates[0] or 
       attribute.temperature_value > rates[1] or 
       attribute.heartbeat_value<rates[2] or 
       attribute.heartbeat_value>rates[3]):
      return True
   else:
      return False

Django デバッガーは、構文エラーがあることを示しています。

また、関数を削除しようとすると、別の行に別のエラーが表示されます

EOL while scanning string literal (views.py, line 109)

109 行目:

data = \
  DataPool(
    series=
    [{'options': {
     'source': values},
       'terms': [
        'current_time',
        'temperature_value',
        'heartbeat_value']}
    ])

ご協力いただきありがとうございます。

トレースバック:

File "/home/innovo/.local/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "/home/innovo/.local/lib/python2.6/site-packages/django/core/urlresolvers.py" in resolve
  300.                     sub_match = pattern.resolve(new_path)
File "/home/innovo/.local/lib/python2.6/site-packages/django/core/urlresolvers.py" in resolve
  209.             return ResolverMatch(self.callback, args, kwargs, self.name)
File "/home/innovo/.local/lib/python2.6/site-packages/django/core/urlresolvers.py" in callback
  216.         self._callback = get_callable(self._callback_str)
File "/home/innovo/.local/lib/python2.6/site-packages/django/utils/functional.py" in wrapper
  27.         result = func(*args)
File "/home/innovo/.local/lib/python2.6/site-packages/django/core/urlresolvers.py" in get_callable
  92.                 lookup_view = getattr(import_module(mod_name), func_name)
File "/home/innovo/.local/lib/python2.6/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)

Exception Type: SyntaxError at /
Exception Value: EOL while scanning string literal (views.py, line 114)
4

1 に答える 1

2

私は次のように書きます:

def check(attr):
    temp, pulse = attr.temperature_value, attr.heartbeat_value
    def check_range(value, low, high):
        return value < low or value > high
    return check_range(temp, rates[0], rates[1]) or \
        check_range(pulse, rates[2], rates[3])

ただし、問題を解決するには、末尾のバックスラッシュのみが必要です。

あなたの他の問題が何であるかわかりません。これはうまくいきます:

class DataPool(object):
    def __init__(self, series):
        self.series = series

values = list(range(5))

data = \
  DataPool(
    series=
    [{'options': {
     'source': values},
       'terms': [
        'current_time',
        'temperature_value',
        'heartbeat_value']}
    ])

ところで、このコード:

def check_range(value, low, high):
    return value < low or value > high

次の場合もあります。

def check_range(value, low, high):
    return not (low <= value <= high)
于 2013-01-06T17:59:16.137 に答える