我正在迁移一个项目,使其不再充斥着globals
,而是实际拥有一个由单独模块中定义的类定义的结构。这是我第一次真正使用OOP,所以我想确保我正确理解范围,因为我选择的Python编辑器(VS代码)没有正确执行autocomplete/Intellisense。你知道吗
在我的代码顶部,我导入了我的模块-
import NHLGameEvents
我在代码的main部分创建我的对象-
if __name__ == '__main__':
game_info = is_game_today()
# Create a Game Object
gameobj_game_type = game_info["gameType"]
gameobj_date_time = game_info["gameDate"]
gameobj_game_state = game_info["status"]["abstractGameState"]
gameobj_venue = game_info["venue"]["name"]
gameobj_live_feed = game_info["link"]
gameobj_broadcasts = {}
gameobj_broadcasts[broadcast_team] = broadcast_channel
game = NHLGameEvents.Game(gameobj_game_type, gameobj_date_time, gameobj_game_state,
gameobj_venue, gameobj_live_feed, gameobj_broadcasts)
然后我有一个方法,我想记录这个方法的一些属性-
def get_game_events():
logging.info("Getting data from endpoint: %s", game.live_feed)
live_feed_json = requests.get(game.live_feed).json()
return live_feed_json
我对上述代码有两个问题-
get_game_events()
方法中,如果给定了game.live_feed
的定义范围,我应该能够访问它吗?我的代码执行正确,但一旦我键入game.
语句,就不会自动完成。你知道吗main()
)中定义对象,那么如何确保代码中的其他方法可以访问这些类实例?你知道吗
首先,我应该指出函数是用
def
声明的函数,而方法类似于函数,但它存在于类中。你知道吗是的,它应该可以进入游戏。在python中,只要不改变变量的值,就可以访问上层的变量。如果在函数内设置变量的值,则只能在该函数内访问该变量。你知道吗
但是,我建议您始终将函数中需要的值作为参数传递。更干净,并通过删除全局范围来避免副作用。你知道吗
你不能从另一个函数中访问函数的值,不管它叫
main
或者其他名字。但是,只要第二个函数在第一个函数中,就可以从另一个函数访问函数的值。例如:相关问题 更多 >
编程相关推荐