Python 如何通过引用更改变量,如Pandas inplace

Python 如何通过引用更改变量,如Pandas inplace,python,pandas,in-place,Python,Pandas,In Place,因此,我在与Pandas合作时,最近遇到了inplace参数,它可以在不重新赋值的情况下更改原始变量 示例:df.dropna(inplace=True)而不是df=df.dropna() 我想应用相同的机制,但用于自定义函数。但是,本机仅支持列表类型 def append(x, element): x.append(element) 如果我尝试使用其他类型,它将不起作用 def to_lower(text): text.lower() 有人知道Pandasinplace是如

因此,我在与Pandas合作时,最近遇到了inplace参数,它可以在不重新赋值的情况下更改原始变量

示例:
df.dropna(inplace=True)
而不是
df=df.dropna()

我想应用相同的机制,但用于自定义函数。但是,本机仅支持
列表
类型

def append(x, element):
    x.append(element)
如果我尝试使用其他类型,它将不起作用

def to_lower(text):
    text.lower()

有人知道Pandas
inplace
是如何完成这项工作的吗?

我认为
inplace=True
vs
inplace=False
可以通过正确定义
\u repr\u
方法在课堂上实现:

class ToLower:

    def __init__(self, text: str):
        self.text = text

    def to_lower(self, inplace: bool):
        self.text = self.text.lower()
        if not inplace:
            return self

    def __repr__(self):
        return f"{self.text}"

# not in place
example = ToLower("Hello World!")
print("Input value NOT in place :", example)
out = example.to_lower(inplace=False)
print("Input value after NOT in place:", example)
print("Returned after NOT in place:", out)
# update in place
example = ToLower("Hello World!")
print("Input value in place:", example)
out = example.to_lower(inplace=True)
print("Input value after in place:", example)
print("Returned after in place:", out)
text = "LET'S TRY ONE MORE TIME"
example = ToLower(text)
example.to_lower(inplace=True)
print("Desired output:", example)


@AmineMessaoudi我想知道这是否有助于解决您的问题
text = 'Hello World'
to_lower(text)
text
'Hello World'
class ToLower:

    def __init__(self, text: str):
        self.text = text

    def to_lower(self, inplace: bool):
        self.text = self.text.lower()
        if not inplace:
            return self

    def __repr__(self):
        return f"{self.text}"

# not in place
example = ToLower("Hello World!")
print("Input value NOT in place :", example)
out = example.to_lower(inplace=False)
print("Input value after NOT in place:", example)
print("Returned after NOT in place:", out)
# update in place
example = ToLower("Hello World!")
print("Input value in place:", example)
out = example.to_lower(inplace=True)
print("Input value after in place:", example)
print("Returned after in place:", out)
text = "LET'S TRY ONE MORE TIME"
example = ToLower(text)
example.to_lower(inplace=True)
print("Desired output:", example)
Input value NOT in place : Hello World!
Input value after NOT in place: hello world!
Returned after NOT in place: hello world!
Input value in place: Hello World!
Input value after in place: hello world!
Returned after in place: None
Desired output: let's try one more time