Python中类的定义

49 阅读1分钟

以下是类的常见定义方法: image.png

image.png

__init__函数

这是程序的初始化构造函数

def __init__(self, *args, **kwargs):
        super(SimpleSwitch, self).__init__(*args, **kwargs)
        self.mac_to_port = {}   #创建一个名为 mac_to_port 的空字典,作为实例变量

self:是类的实例对象,相当于c++的this指针。

*args, **kwargs:相当于main程序入口的argc,argv

成员函数

在c++中我们的成员函数分为:public,private,protected三类。

在 Python 中,类的成员函数确实可以根据其命名约定分为公共成员函数和私有成员函数。虽然 Python 没有像某些其他编程语言(如 C++ 或 Java)那样严格的访问控制机制,但它通过命名约定提供了一种隐式的访问控制方式。

公共成员函数

它们通常不以任何特殊字符开头,直接定义即可。

class MyClass:
    def public_method(self):
        print("This is a public method.")

# 创建类的实例并调用公共方法
obj = MyClass()
obj.public_method()  # 输出: This is a public method.

私有成员函数

Python 使用一种命名约定来表示私有成员:以双下划线 __ 开头的函数被视为“私有”。

class MyClass:
    def __private_method(self):
        print("This is a private method.")

    def public_method(self):
        print("Calling private method from public method:")
        self.__private_method()

# 创建类的实例
obj = MyClass()

# 调用公共方法
obj.public_method()
# 输出:
# Calling private method from public method:
# This is a private method.

# 尝试直接调用私有方法会报错
# obj.__private_method()  # AttributeError: 'MyClass' object has no attribute '__private_method'

受保护成员函数

它们以单下划线 _ 开头,表示该成员函数或变量仅供类的内部或子类使用,但并不强制限制外部访问。

class MyClass:
    def _protected_method(self):
        print("This is a protected method.")

# 创建类的实例
obj = MyClass()

# 可以直接调用受保护方法
obj._protected_method()  # 输出: This is a protected method.