python – 为什么在这种情况下使用str()?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 为什么在这种情况下使用str()?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1182字,纯文字阅读大概需要2分钟。
内容图文
![python – 为什么在这种情况下使用str()?](/upload/InfoBanner/zyjiaocheng/806/3bd47c3bb5d24688ad1b5bfa0cfeebed.jpg)
这些是django.db.models.fields的代码
__all__ = [str(x) for x in (
'AutoField', 'BLANK_CHOICE_DASH', 'BigAutoField', 'BigIntegerField',
'BinaryField', 'BooleanField', 'CharField', 'CommaSeparatedIntegerField',
'DateField', 'DateTimeField', 'DecimalField', 'DurationField',
'EmailField', 'Empty', 'Field', 'FieldDoesNotExist', 'FilePathField',
'FloatField', 'GenericIPAddressField', 'IPAddressField', 'IntegerField',
'NOT_PROVIDED', 'NullBooleanField', 'PositiveIntegerField',
'PositiveSmallIntegerField', 'SlugField', 'SmallIntegerField', 'TextField',
'TimeField', 'URLField', 'UUIDField',
)]
我认为在(…)中x的str(x)和在(…)中x的x在这种情况下是相同的.为什么使用str()?
解决方法:
请注意代码顶部的__future__导入unicode_literals.
现在默认情况下,每个字符串文字都是一个unicode字符串(就像它已经在Python 3中一样).
>>> from __future__ import unicode_literals
>>> s = 'test'
>>> type(s)
<type 'unicode'>
为了避免注释中提到的TypeError
# Avoid "TypeError: Item in ``from list'' not a string" -- unicode_literals
# makes these strings unicode
元组中的所有unicode文字(‘AutoField’,’BLANK_CHOICE_DASH’,…)都转换为Python 2字节串.
你是对的,如果顶部的import语句不在那里,列表理解将完全没有意义(在两个版本的Python中).
内容总结
以上是互联网集市为您收集整理的python – 为什么在这种情况下使用str()?全部内容,希望文章能够帮你解决python – 为什么在这种情况下使用str()?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。