小编Ale*_*eev的帖子

IndexError:解析方法参数时,元组索引超出范围

我已经检查了这个问题,但在那里找不到答案.这是一个演示我的用例的简单示例:

def log(*args):
    message = str(args[0])
    arguments = tuple(args[1:])
    # message itself
    print(message)
    # arguments for str.format()0
    print(arguments)
    # shows that arguments have correct indexes
    for index, value in enumerate(arguments):
        print("{}: {}".format(index, value))
    # and amount of placeholders == amount of arguments
    print("Amount of placeholders: {}, Amount of variables: {}".format(message.count('{}'), len(arguments)))

    # But this still fails! Why?
    print(message.format(arguments))

log("First: {}, Second: {}, Third: {}, Fourth: {}", "asdasd", "ddsdd", "12312333", "fdfdf")
Run Code Online (Sandbox Code Playgroud)

并输出:

First: {}, Second: {}, Third: {}, Fourth: …
Run Code Online (Sandbox Code Playgroud)

python string-formatting

7
推荐指数
1
解决办法
2928
查看次数

'from module import function'语句是否导致在给定模块中隐式导入其他函数

我的问题最初是由一个错误引起的,这里突出显示.原来的问题现在已经解决了,但是这留下了一个关于如何在Python中进行导入的问题.以下是使用Django重现问题的快速步骤:

  1. 使用django-admin启动虚拟项目
  2. 用它创建一个应用程序: ./manage.py startapp dummy_app
  3. 在app中models.py定义一个函数和一个扩展Django模型的类,如下所示:

    from django.db import models
    
    # auxiliary function in models
    def aux_function(value):
        print(value)
    
    class Report(models.Model):
        class Meta:
            managed = False
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在新的app模块中__init__,导入aux_function如下所述:

    from dummy_app.models import aux_function
    
    Run Code Online (Sandbox Code Playgroud)
  5. 添加应用程序INSTALLED_APPS并运行dev服务器

这将导致异常:

  File "/home/aanikeev/PycharmProjects/dummy/dummy_app/__init__.py", line 1, in <module>
    from dummy_app.models import aux_function
  File "/home/aanikeev/PycharmProjects/dummy/dummy_app/models.py", line 8, in <module>
    class Report(models.Model):
  File "/home/aanikeev/.virtualenvs/dummy/lib/python3.5/site-packages/django/db/models/base.py", line 110, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/home/aanikeev/.virtualenvs/dummy/lib/python3.5/site-packages/django/apps/registry.py", line 247, in get_containing_app_config
    self.check_apps_ready()
  File "/home/aanikeev/.virtualenvs/dummy/lib/python3.5/site-packages/django/apps/registry.py", line …
Run Code Online (Sandbox Code Playgroud)

python django import

1
推荐指数
1
解决办法
52
查看次数

标签 统计

python ×2

django ×1

import ×1

string-formatting ×1