Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create_engine函数中的两点疑问 #3

Open
ywxowen999 opened this issue May 31, 2016 · 2 comments
Open

create_engine函数中的两点疑问 #3

ywxowen999 opened this issue May 31, 2016 · 2 comments

Comments

@ywxowen999
Copy link

ywxowen999 commented May 31, 2016

在这个函数中有两点疑问,希望得到雪峰老师的指导

``
for k, v in defaults.iteritems():
params[k] = kw.pop(k, v) # dict.pop(key, default_value) 如果用户未设定,则使用默认值。

params.update(kw)

#上面这段代码不是可以用下面这两句写吗。
params.update(defalults)
params.update(kw)

``

2、问题

``
engine = _Engine(lambda: mysql.connector.connect(**params))
这里为什么要用lambda ? 本来这句不就是调用一次mysql.connector.connect方法吗。

``

@yumaojun03
Copy link
Owner

我不是廖雪峰哈, 我说下我的理解。

  1. 可以那样写,这样更简单些。
  2. 应该_Engine实例化时 需要持有一个连接对象 而这个连接对象保存的是 调用数据库的方法, 所以是个函数, 当真真调用时 他才会执行。这就相当于 你真真使用连接时 才会调用, 你如果仅仅是声明 是不会获取 连接的。

@handsomepan
Copy link

engine = _Engine(lambda: mysql.connector.connect(**params))
请问下这个_Engine是从mysql.connector 引用的吗,我看了下没有这个东东

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants