python类私有函数的使用方法

  • Post category:Python

Python 中的类中可以定义私有函数(private function),它们的名字以两个下划线开头。私有函数只能在类内部访问,类外部无法访问。Python 中没有真正的私有函数,但是有一种形式叫做 name mangling,访问私有函数通过 _ClassName__private_function() 形式实现。

下面是使用私有函数的步骤:

  1. 在函数名前添加两个下划线,例如 def __private_function(self):
  2. 在类内部调用私有函数时,使用 self.__private_function() 形式

私有函数的作用在于,避免在类外部直接访问和修改内部实现的函数和属性,增强类的封装性和安全性。

代码示例:

class User:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __display_name(self):
        print(f"My name is {self.name}")

    def get_info(self):
        self.__display_name()
        print(f"I am {self.age} years old")


user1 = User("Tom", 18)
user1.get_info()

输出:

My name is Tom
I am 18 years old

在上面的示例中,我们定义了一个 User 类,其中有一个私有函数 __display_name(),用于打印用户的姓名。在 get_info() 函数中,我们调用了 self.__display_name() 来使用私有函数。

代码示例2:

class BankAccount:
    def __init__(self, name, balance):
        self.name = name
        self.__balance = balance

    def deposit(self, amount):
        self.__balance += amount

    def withdraw(self, amount):
        if amount > self.__balance:
            print("Sorry, you don't have enough balance.")
        else:
            self.__balance -= amount

    def get_balance(self):
        return self.__balance


account1 = BankAccount("John", 1000)
account1.withdraw(500)
print(account1.get_balance())

输出:

500

在上面的示例中,我们定义了一个 BankAccount 类,其中有一个私有变量 __balance,它存储用户的余额。在 withdraw() 函数中,我们检查用户是否有足够的余额进行取款。如果用户没有足够的余额,我们将打印一条错误消息。否则,我们将从余额中减去取款金额。在 get_balance() 函数中,我们返回用户的余额。

使用私有函数和变量,可以隐藏类的内部实现和数据,并提高代码的可维护性。