将整个对象作为值传递是否安全、高效、可靠?
对Python中的一切都是对象。
如果我是正确的,这是一个打印函数,它在内存中返回一个表示对象的地址。这代表什么问题吗。。。打印函数返回内存中表示对象的地址。这代表什么问题吗?
这里没有问题。这完全取决于环境
__repr__
类的重写。如果没有,那么默认实现是打印
id()
对象及其类类型的。例如。
>>> class Test: pass
>>> print(Test())
<__main__.Test object at 0x00000185FF1C5D30>
>>> class Test:
... def __repr__(self): return "Tada!"
>>> print(Test())
Tada!
请尽可能对我的代码的结构和可靠性提出建议。如有任何意见,将不胜感激。
我宁愿使用数据类来表示条目,而不是使用非类型化的dict列表来存储条目。这些类型的类是存储纯数据和实现以下功能的理想方式
__报告__
,
__init__
还有其他对你有用的方法!例如:
from dataclasses import dataclass
from typing import Optional
@dataclass
class Gear:
name: str
attack_rating: int = 0
magic_rating: int = 0
defense_rating: int = 0
@dataclass
class Equipment:
helmet: Optional[Gear] = None
torso: Optional[Gear] = None
hand: Optional[Gear] = None
使用这个类,你可以轻松构建你的玩家配置!
>>> player_equipment = Equipment()
>>> player_equipment.helmet = Gear("Tiara", magic_rating=15)
>>> print(player_equipment)
Equipment(helmet=Gear(name='Tiara', attack_rating=0, magic_rating=15, defense_rating=0), torso=None, hand=None)