沒有類型轉換是怎麼回事,但字符串類型有很多,其提供有用的快捷鍵是很合乎邏輯的操作,當你想想看:
- 乘
*
=重複這樣'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