python入门(2)

基础内容:

为什么‘+’可以连接两个字符串?

运算符重载。具体说来,每个变量在Python中都是以对象形式存在的,即都是继承于Object。而Object则具有object._add_(self,other)这样一个方法。每当处理x+y这一个表达式的时候,将会调用x._add_(y)。另外为了交换律,还有_radd_方法,也就是用来处理y+x,这样会调用y._radd_(x)。所以我们也可以自己重载+,比如:
class Free:
def __init__(self, info):
self.info = info
def __add__(self, moreinfo):
return str(self) + moreinfo
def __radd__(self, moreinfo):
return moreinfo + str(self)
def __str__(self):
return self.info

Free这个Class,便得以直接成为+操作符的左/右参数。

正如richardzhiming所说,a+b是低效的,这是基于大量的+操作所讨论的。这是因为String是一个不可变的对象,你并不是真的把字符串b加到字符串a这个对象后面,而是需要创建一个新的对象,然后把a和b
copy进去。因此当你大量进行+之时,你会创建许许多多临时的String对象。”.join(str_list)更好,则是因为,字符串的创建和拷贝是一次完成,而不需要创建很多String对象。

python中的转义序列:

EscapeWhat it does含义
\Backslash ()反斜杠
\’Single-quote (‘)单引号
\”Double-quote (“)双引号
\aASCII bell (BEL)响铃符
\bASCII backspace (BS)退格符
\fASCII formfeed (FF)进纸符
\nASCII linefeed (LF)换行符
\N{name} Character named name in the Unicode database (Unicode only) Unicode数据库中的字符名;name就是它的名字
\rASCII Carriage Return (CR)回车符
\tASCII Horizontal Tab (TAB)水平制表符
\uxxxx Character with 16-bit hex value xxxx (Unicode only)值为16位十六进制xxxx的字符
\Uxxxxxxxx Character with 32-bit hex value xxxxxxxx (Unicode only)值为32位十六进制xxxx的字符
\vASCII vertical tab (VT)垂直制表符
\oooCharacter with octal value ooo值为八进制ooo的字符
\xhhCharacter with hex value hh值为十六进制数hh的字符

Tips:
%r 可以显示变量的原始数据(raw data)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值