python - 如何在 Python 中的方法中预设对象变量
问题描述
一个例子:
class User():
def __init__(self, name, password):
self.name = name
self.password = password
def edit(self, name=self.name, password=self.password): <- ERROR
self.name = name
self.password = password
我想像这样编辑对象的名称或密码:
object.edit(password="New password")
随之而来的错误:
undefined variable "self"
我这样做是因为那时我只能编辑一件事,而另一件事仍然是一样的。请帮我!还有其他方法可以做到吗?
解决方案
你可以编写你的edit
函数来接受关键字参数的字典,这样你就可以知道哪些是给定的,哪些不是。
def edit(self, **kwargs):
if 'name' in kwargs:
self.name = kwargs['name']
if 'password' in kwargs:
self.password = kwargs['password']
您可以使用 调用它instance.edit(password='newpass')
,并且只会更新密码。
推荐阅读
- computer-vision - 硬件上实时的密集光流,4K 分辨率 @30fps
- spring-batch - 如何使用自定义分区编写 Spring Batch 以执行并行处理
- android - Kotlin 中的 PublishSubject onError 函数
- c++ - 类的私有变量成员即使在赋值后也会显示垃圾数据
- discord.js - Discord.Js 机器人不等待响应
- javascript - 如何在 JavaScript 中的多维(2D)数组中的关联数组中设置/获取值
- javascript - 我无法从对象中检索变量
- java - 在相对布局中限制自定义视图
- sql - 我的 SQL 查询正在创建新表,如何改为更新现有表
- javascript - 遵循 OOP 范式和 DRY 原则,如何最好地重构这个计时器/秒表代码库以实现更好的代码重用?