__qualname__python中有什么,它有什么用?
为什么我需要使用它__name__?
我阅读了文档,但它们并没有帮助我清楚地了解它的用处。
我已阅读获取 Python 类的完全限定名称 (Python 3.3+)。
这个问题问的是“如何获得一个合格的名字”,它假定人们知道“合格的名字”的含义。显然,该问题的答案是使用__qualname__属性。
我的问题是什么 __qualname__,为什么我应该在__name__.
是否可以在python中使用变量作为函数名?例如:
list = [one, two, three]
for item in list:
def item():
some_stuff()
Run Code Online (Sandbox Code Playgroud) 假设我有一个字符串列表: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,我从这里的参数的 REST 端点获得了一个定义:
我想要做的是以下内容:
OnlineMethod(above_url).CreateDriveTimePolygons(Input_Location=(25,-34), Drive_Times="5,12,31")
Run Code Online (Sandbox Code Playgroud)
我可以setattr在 obj 上使用来定义预制函数,但我的问题如下:
谢谢
目标是不使用 kwargs 或 args
可以不使用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) 我有一个模型叫这样的人
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 是字段的名称。但是,由于字段的检索是动态发生的,有没有办法动态访问字段的显示名称?无需绑定函数?