Python中为什么有的函数可以直接用,有的就要赋值才能用呢?
比如一个a列表在4号位置插入'k'字符,
a.insert(4,'k')
print(a) #就可以了
但是要想将k变成大写
a[4].upper()
print(a) #就不行
a[4]=a[4].upper()
print(a) #为什么这样才可以,像这样的函数是什么原理呢,怎么区分呢?
解答:
比如一个a列表在4号位置插入'k'字符,
a.insert(4,'k')
对象是a.列表a有方法insert( )对列表直接修改。因为列表是可变对象。
print(a) #打印对象a就可以了看到结果
但是要想将k变成大写
a[4].upper()#注意,upper是字符串的方法,字符串是不可变对象,反回的是个新的字符
print(a) #就不行。a[4]这个元素,指向的还是原来那个字符
a[4]=a[4].upper()#a[4]元素被绑定为新返回的字符。
print(a) #列表还是那个列表,只是其中的某个元素被修改了。
了解下可变对象和不可变对象。
小结:
有的方法是修改原来的对象,返回值为None
有的方法是不修改原来的对象,返回修改过的值。