相关疑难解决方法(0)

python中的__qualname__是什么?

  • __qualname__python中有什么,它有什么用?

  • 为什么我需要使用它__name__

我阅读了文档,但它们并没有帮助我清楚地了解它的用处。

我已阅读获取 Python 类的完全限定名称 (Python 3.3+)
这个问题问的是“如何获得一个合格的名字”,它假定人们知道“合格的名字”的含义。显然,该问题的答案是使用__qualname__属性。

我的问题是什么 __qualname__为什么我应该在__name__.

python python-3.x

32
推荐指数
2
解决办法
1万
查看次数

如何在Python中将变量用作函数名

是否可以在python中使用变量作为函数名?例如:

list = [one, two, three]
for item in list:
    def item():
         some_stuff()
Run Code Online (Sandbox Code Playgroud)

python python-3.x

9
推荐指数
5
解决办法
2万
查看次数

从列表中定义函数

假设我有一个字符串列表:obj = ['One','Two','Three'],我怎样才能将此列表中的每个值转换为一个函数,它们都执行非常相似的函数?例如:

def one():
    print("one")

def two():
    print("two")

def three():
    print("three")
Run Code Online (Sandbox Code Playgroud)

现在我知道你可以预先定义函数并使用字典(如下所示),但是说我想要创建很多函数,这需要很多代码才能这样做,因此我想知道是否有我可以用更短的方式来解决这个问题.

import tkinter as tk

def one():
    print("one")

def two():
    print("two")

def three():
    print("three")

obj = ['One','Two','Three']
func = {'One': one, 'Two': two, 'Three': three}

def create_btn():
    btns =  {}
    for i in obj:
        text = i
    for col in range(1):
        for row in range(len(obj)):
            btns[row, col] = tk.Button(canvas, text=str(text),
                                       command=func[i]).grid(column=col,
                                                                 row=row)
            btns[row, col] = canvas.create_window(50, row,
                                                  window = btns[row, col])
            canvas.pack()


root = tk.Tk()          
root.geometry …
Run Code Online (Sandbox Code Playgroud)

python function list

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

动态修改 Python 方法和参数

我正在使用 Python,我从这里的参数的 REST 端点获得了一个定义:

https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer/CreateDriveTimePolygons?f=json

我想要做的是以下内容:

  1. 创建一个名为:CreateDriveTimePolygons 的函数
  2. 添加输入参数
  3. 引用类中可以处理这些输入的函数。
OnlineMethod(above_url).CreateDriveTimePolygons(Input_Location=(25,-34), Drive_Times="5,12,31")
Run Code Online (Sandbox Code Playgroud)

我可以setattr在 obj 上使用来定义预制函数,但我的问题如下:

  1. 如何更改方法的签名名称?
  2. 如何修改方法的输入参数?

谢谢

目标是不使用 kwargs 或 args

python methods dynamic

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

我们如何在不使用“def”关键字的情况下定义函数?

可以不使用class关键字来定义类。
下列 ...

get_i = lambda self: self.i    
get_i.__name__ = 'get_i'
get_i.__qualname__ = 'Klass2.get_i'
dct = dict(a=1, i=4, get_i=get_i)    
Klass2 = type('Klass2', (SuperK,), dct)
Run Code Online (Sandbox Code Playgroud)

...产生与以下相同的最终结果:

class Klass1(SuperK):
    a = 1
    i = 4
    def get_i(self):
        return self.i
Run Code Online (Sandbox Code Playgroud)

我们如何为函数做类似的事情?也就是说,我们如何在不使用deforlambda关键字的情况下定义函数?dehf如果以下两段代码创建相同的s ,纯 python 实现会是什么样子foo

def foo(bar):
    bar += 934
    return bar

foo = dehf(blah, blah, blah, blah, [...])
Run Code Online (Sandbox Code Playgroud)

python function python-3.x

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

在 Django 视图中动态获取显示名称?

我有一个模型叫这样的人

class person(models.Model):
    choice1 = ("a","DisplayNameA", "b", "DisplayNameB")
    choice1_field = models.CharField(max_length=1, choices=choice1)
    choice2 = ("c","DisplayNameC", "d", "DisplayNameD")
    choice2_field = models.CharField(max_length=1, choices=choice2)
    # and so on, there are many fields like these
Run Code Online (Sandbox Code Playgroud)

之后,我尝试在我的视图中生成 CSV 文件

我可以循环遍历我需要的所有字段,然后像这样动态访问值

getattr(person_object, field_name)
Run Code Online (Sandbox Code Playgroud)

然而,这会返回“a”、“b”等。

我知道我可以使用 访问显示名称get_FOO_display(),其中 foo 是字段的名称。但是,由于字段的检索是动态发生的,有没有办法动态访问字段的显示名称?无需绑定函数

python django django-models django-views

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