python 封装调用_python中怎样封装与引用
时间: 2023-11-02 21:32:53 浏览: 82
Python中的封装是通过类和对象来实现的。封装的目的是将数据和方法包装在一起,以避免外部直接访问或修改数据。在Python中,封装可以通过使用私有成员和getter/setter方法来实现。
私有成员可以通过在变量或方法名前加上两个下划线来定义,例如:
```
class MyClass:
def __init__(self):
self.__my_private_variable = 0
def __my_private_method(self):
print("This is a private method")
def my_public_method(self):
self.__my_private_method()
print("This is a public method")
my_object = MyClass()
my_object.my_public_method()
```
在上面的示例中,`__my_private_variable`和`__my_private_method`都是私有成员,只能在类内部访问。`my_public_method`是一个公共方法,可以从类的外部访问。
使用getter和setter方法可以让外部访问私有成员,同时也可以进行一些数据验证或处理。例如:
```
class MyClass:
def __init__(self):
self.__my_private_variable = 0
def get_my_private_variable(self):
return self.__my_private_variable
def set_my_private_variable(self, new_value):
if new_value > 0:
self.__my_private_variable = new_value
else:
print("Invalid value")
my_object = MyClass()
my_object.set_my_private_variable(-1)
print(my_object.get_my_private_variable())
```
在上面的示例中,`get_my_private_variable`和`set_my_private_variable`是getter和setter方法,可以让外部访问`__my_private_variable`。`set_my_private_variable`方法还进行了数据验证,如果传递的值小于等于0,则会打印一条错误消息。
要在Python中引用封装的代码,可以像引用其他模块一样引用类或对象。例如:
```
from my_module import MyClass
my_object = MyClass()
my_object.my_public_method()
```
在上面的示例中,`my_module`是包含`MyClass`定义的模块。我们从该模块中导入`MyClass`,然后可以创建`MyClass`的实例并调用其公共方法。
阅读全文