这两个函数有什么区别?我见过人们在类型注释周围加上引号,有时将它们排除在外,但我找不到人们选择使用其中一种的原因。
def do_something(entity: Entity):
pass
def do_something(entity: 'Entity'):
pass
Run Code Online (Sandbox Code Playgroud)
这些有什么优点或缺点吗?
我目前已设置 GPGS,并可用于我的应用程序。我在使用上传密钥调试应用程序时遇到了某些功能问题。我按照此处的步骤操作:/sf/answers/3168923061/,并且能够在使用使用 Google 保存在安全服务器上的安全“应用程序签名密钥”签名的应用程序时登录 Google,并且能够使用使用我的“上传密钥”签名的应用程序登录。(我有两个 OAuth 2.0 客户端 ID。一个用于生产,一个用于调试)
我的问题类似于在使用上传密钥签名的应用程序上测试 Google Play 游戏,并且Android RealTimeMultiplayer onRoomCreated 获得状态 2:STATUS_CLIENT_RECONNECT_REQUIRED。虽然我可以使用使用我的上传密钥签名的应用程序登录,但我实际上无法完全测试我使用的不同游戏服务。这两个问题都没有得到解决。
例如,在尝试测试实时多人游戏时,我会在 onRoomCreated 中获得 statusCode 2 (CLIENT_RECONNECT_REQUIRED)。仅当我使用使用我的上传密钥签名的应用程序时才会发生这种情况。为了充分测试这一点,我必须在我的 Google Play Console 上创建一个内部版本。当我这样做时,多人游戏、成就和排行榜功能齐全,我能够测试它们。
我也关闭了反盗版,所以这不是问题。如果我从 console.developers.google.com 中删除 OAuth 凭据,它就无法登录,但是当我将其添加回来时,它仍然无法完全正常运行,因为我唯一能做的就是登录。
目前,我的游戏服务项目已发布,我正在尝试允许两个 SHA1 密钥能够访问它。虽然我可以使用上传密钥登录,但我希望能够全面测试我的应用程序,而不必每次都创建新的内部版本,以便使用正确的密钥进行签名。
我真的很希望能够测试游戏服务,而无需每次都将其上传到 Google Play 控制台。
android google-play-services google-play-games android-app-signing