没有类型转换是怎么回事,但字符串类型有很多,其提供有用的快捷键是很合乎逻辑的操作,当你想想看:
- 乘
*
=重复这样'abcd ' * 4
- >'abcd abcd abcd abcd '
- 添加
+
=串连所以'abcd' + 'efg'
- >'abcdefg'
但'abcd' + 3
- >TypeError: cannot concatenate 'str' and 'int' objects
,找出哪些操作是可用于任何给定类型的招数是,除了阅读本手册,dir(x)
和help(x)
其中x是一个实例的类型,所以:
dir('a')
__add__, __class__, __contains__, __delattr__, __doc__, __eq__, __format__,
__ge__, __getattribute__, __getitem__, __getnewargs__, __getslice__, __gt__,
__hash__, __init__, __le__, __len__, __lt__, __mod__, __mul__, __ne__, __new__,
__reduce__, __reduce_ex__, __repr__, __rmod__, __rmul__, __setattr__,
__sizeof__, __str__, __subclasshook__, _formatter_field_name_split, _formatter_parser,
capitalize, center, count, decode, encode, endswith, expandtabs, find, format, index,
isalnum, isalpha, isdigit, islower, isspace, istitle, isupper, join, ljust,
lower, lstrip, partition, replace, rfind, rindex, rjust, rpartition, rsplit, rstrip,
split, splitlines, startswith, strip, swapcase, title, translate, upper, zfill
正如你可以看到这个包含了运营商__add__
和__mul__
用于添加和乘法。
没有类型转换正在进行。将一个字符串与一个整数相乘是一个古老且众所周知的功能,它只是简单地复制字符串(所以没有转换)。所以例如''foo'* 3'变成'foofoofoo'。 –
我最喜欢的用法是在命令行脚本中写出分隔符:'print'='* 79' – chucksmash