为什么这个函数不会在__init__方法中触发?

use*_*308 4 python

class test:
    def __init__(self, val):
        self.val = val
        self.val.lower()
Run Code Online (Sandbox Code Playgroud)

为什么lower()不对此代码中的val内容进行操作?

NPE*_*NPE 15

你可能意味着:

self.val = self.val.lower()
Run Code Online (Sandbox Code Playgroud)

或者,更简洁:

class test:
    def __init__(self, val):
        self.val = val.lower()
Run Code Online (Sandbox Code Playgroud)

详细说明,lower()不会修改字符串(它不能,因为字符串是不可变的).相反,它返回一个适当修改的字符串副本.


unw*_*ind 5

文件指出它非常清楚:

返回字符串的副本,并将所有套接字符[4]转换为小写.