Atm*_*tma 1 python django django-models
我有以下代码:
model = MyModel()
field = model._meta.get_field_by_name('my_field')[0]
my_type = field.get_internal_type
print str(my_type)
Run Code Online (Sandbox Code Playgroud)
这输出:
<bound method URLField.get_internal_type of <django.db.models.fields.URLField: my_field>>
Run Code Online (Sandbox Code Playgroud)
如何从ubound方法输出中提取URLField类型?
在Python 2.x中,绑定方法有三个属性:
im_func 是功能对象.im_class 是方法来自的类.im_self是self方法绑定的对象.所以,就这样做:
print my_type.im_self
Run Code Online (Sandbox Code Playgroud)
在Python 3.x中,im_func重命名__func__,im_self重命名__self__,并且im_class已经消失.
在2.7中,如果您愿意,可以使用3.x名称代替2.x名称.
这个细节深深埋藏在文档中,但inspect模块文档有一个方便的表格,简要说明了各种内置类型中最重要的特殊字段的作用.
这篇博客文章有更多细节,如果你想知道它为什么会这样,那么这些文章主要记录在2009年3月至2010年6月期间Guido的Python历史博客上.
谢谢@Martijn Pieters
答案是调用该方法:
my_type = field.get_internal_type()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6279 次 |
| 最近记录: |