| << ը | 2 ˌ ȍ˂ >> |
˟, ˅.
ס˼ ˂ . ס ۂ ; ס 뫆ˤ ܂ ࡢ. һ ˜ ס f , ˅, ס Dz 킯 貮.
, ˼ ꡜ ̴ ȍ ϵ ˅ (Windows, UNIX, Mac OS).
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string.""" return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) if __name__ == "__main__": myParams = {"server":"mpilgrim", \ "database":"master", \ "uid":"sa", \ "pwd":"secret" \ } print buildConnectionString(myParams)
́ Ǹ 첔һ .
| ˩˂ IDE, ˼ ݵ File->Run... (Ctrl-R) ˅. ̉˼ Ђ ˩ һȲ翫. | |
| ̹˂ IDE Ы, ˼ ݵ Python->Run window... (Cmd-R) ˅, һ ˜ ۂ ȍ ˅. IDE ݵ С, ̢˂ -ȗ ݹ ˅ ˼ ȕ ݵ˂ ȍ , “Run as __main__” ̹ ˅һ 즗. ˼ ݵ ˜ˌ翫, ˼ ݵ տ˼ 煱 . | |
| ( OS X ւ) ܸ ̸, ˼ ݵ ჲ ˅: python odbchelper.py | |
Example 1.2. Output of odbchelper.py
server=mpilgrim;uid=sa;database=master;pwd=secret
˼ ˂ ݲ 坡 ﹚ 皡 ˅, һ ס˼ C++ ˼ ˂ , interface/implementation ˼ . ﹚ , ס ݂졒, 즗.
Example 1.3. Declaring the buildConnectionString function
def buildConnectionString(params):
皡 ˅, ˍ, def ﹚˂ ˂ , ﹚˂ , 빚 . ( ˼) 빚 .
, ﹚ ՠ ˂ ˂ . ﹚ ˂ ՠ ˂ ۂ ; 皲 ՠ 皵 ۂ . ȍ, ݵ ﹚˼ ՠ; ﹚ return йը , ﹚ ՠ , ס˼ ˂ null None ՠ .
| 琲 , ( ՠ) ﹚ function 졒, ( ՠ ) м፮˼ sub . м፮ . ݵ ˼ ﹚, (皲 ס None皦) ݵ ﹚ ՠ, ݵ ﹚ def . | |
տ, 빚, params, ۂ . , ˼ ˞ 終 . ˼ 킯졒 ȼ˞ ס 皂.
| , C++, - ݲЫ, ˼ ﹚˂ ՠ˂ ﹚˂ 빚˂ ۂ . , ˼ ˞ ˂ ۂ . Ҁ , ˼ ˂ ȼ˞ 皂. | |
˼ ﹚ doc string ϡ븇 ը ˅.
Example 1.4. Defining the buildConnectionString function's doc string
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string."""
˂ 飫 - ը ˂킄. ˂ ˸ ȍ ˅ ݵ ˼, 졜 ը ւ, һ˂ ը˂ . ˼ ס굎 ˡһ ȍ ˅, һ ˼ doc string ˂ ס굎 ȍ .
| ˂ 飫 һ˂ ը, ˂ qq/.../ , ˂챉 篫. | |
˂ ȍ ˅ ݵ ˼ ﹚˂ ը ը doc string , ס˼ ﹚ Dz ը . doc string˼ , ˍ, ՠ ﹚ ˂ ˌ տ˂ .(, ˌ տ˂ ). ˼ ˞ ˂ ﹚ doc string , һ ˼ ȗ . һ ݵ Յ ࡢ, һ ˼ ̧ ϡ篫: doc string˼ ﹚˂ ȍ.
| ˼ IDE˼ doc string ȍ ը- ը ϡ, ﹚˂ , doc string һЫ. ˼ 煫 , һ ס˼ doc string . | |
ܲ
ס 킯 , һ Ȃ 煡. ˂ ﹚ , ˼ ȍ.
˂ 굎 坡, ﹚ ̹.
Example 1.5. Accessing the buildConnectionString function's doc string
>>> import odbchelper>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} >>> print odbchelper.buildConnectionString(params)
server=mpilgrim;uid=sa;database=master;pwd=secret >>> print odbchelper.buildConnectionString.__doc__
Build a connection string from a dictionary Returns string.
| ˂ import ˂ require . ݵ 챉 , ˼ ס˂ ﹚ module.function 碱 ˅; ݵ 챉 require, ˼ ס˂ ﹚ module::function˂ 碱. | |
ݵ ˼ ̹, ˂ ݵ ˼ 翫. [1] ݵ ﹚˼ ˌ __doc__ , ס˼ ﹚˂ ˂ doc string ՠ.
˼ ˸ տ ס ˯՚ һ ס ՠՂ .: ݵ ˼ ̹. ˼ ̹. ̹. ﹚ ̹. 皲 ݵ ̹, ס 廡 ȓ .
ܲ
﹚ ˞ begin ˼ end , ﹚ 졒 һ ̂煫 顡飵 . 삄 () (“:”) ˂ ӱ ̹.
Example 1.6. Indenting the buildConnectionString function
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string.""" return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
쵎 (﹚, if йը, for , .)˼ ˂ ӱ ˂ . ӱ ˂ ӱ ˼ ס Ҹ; ˞ , , ˼ . ˼ Վ , 졟 ˅ . , ﹚ ( doc string ւ) 4˂ Վ ӱ . ס˼ ՠ 4 , ס˼ 졟 ˅ . ӱ ˼ տ ˼ ﹚˂ ˅.
汉˂ ˂ ˜ס ֮ ҂ ˂ ޡ , ˼ ւ ס˂ . ˌ ˼ ݵ ᴵ˼ , Ҁ ӱ ݲ˂ 湚禡 ˂ ըϡ 챉 ը. ȍֵ˂ ܡ 킯 ˅.
| ˼ ȍ йը 졒 ܡ ӱ ȍ ȼ. | |
ܲ
ݵ˼ ̹ ˂ 翫. ˼ ȍ ݵ ˂ ݵ ˅.
Example 1.7. The if __name__ trick
if __name__ == "__main__":
ˍᇵ ፲ ˟ ˜ ȓ. 飫 if ˤ . տ, if йը˼ Ы, ӱ .
| C , ˼ == ˤ ȍ졒 = ˤ ȍ. C , ˼ in-line ϡ , ҂졒 ˅ ࡢ ˼ . | |
킄 if йը Ӏ? ݵ˼ ̹, ݵ ݵ˼ ˌ __name__ 皡 ˅. ݵ˂ __name__˼ ݵ ȡ ȍҀ ˅. ݵ , __name__˼ ݵ˂ , ἁ ˼ ˌ . һ ˼ ݵ ˞ ˞ ́ ˅, __name__˼ ,__main__ .
Example 1.8. An imported module's __name__
>>> import odbchelper >>> odbchelper.__name__ 'odbchelper'
衒 һ, ˼ if йը ˂ ݵ ҅˸븇 ݵ ̹ ݵ ˤ ݵ ˅. ݵ ˞ , __name__˼ __main__ , ݵ˼ . ݵ , __name__ , ݵ˼ Ǹ̵. ꦤը ț ݵ ͂챉 ˟ է졒 ՚ׂ ˅.
| Ы, if __name__ Ӏ ́ ˤЫ һ˂ ˅. ̢˂ -ȗ ݹ ˅ Ț ȕ 븇 ݵ˂ ȍ ޫ , 騸 __main__ ̹ ȗ 즗. | |
ܲ
˼ ȵ 圫, Ҁ ˼ ȍ˟, , ˅ ը( ȗ!). , ˼ ȍ˟ ۵ ҄ ՚ ˅, һ ˼ ˟ ˂ .
˂ ˌ ˂ һ ȍ˟, ס˼ ȍ˂ 쫑 ˂.
| ˂ ȍ˟˼ ˂ . , ˜ˌ졒 ˅ ˼ ȗ % ը ; , ˼ 皲 ˅, ˼ ȼ˞ 皂. | |
| ȍ˟˼ ˅ Hashtable ˂ ̹ . | |
| ˂ ȍ˟˼ 琲 ˅ Scripting.Dictionary ̹˂ ̹ . | |
Example 1.9. Defining a dictionary
>>> d = {"server":"mpilgrim", "database":"master"}>>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["server"]
'mpilgrim' >>> d["database"]
'master' >>> d["mpilgrim"]
Traceback (innermost last): File "<interactive input>", line 1, in ? KeyError: mpilgrim
| ˜, ț ȍ˟ ˂ ס 'd' . - , ˂ ݵ ݵ˼ 顡 ˂ 翫. | |
|
| server , d["server"] 禂, סꡜ ¡ ˼ mpilgrim. |
|
| database , d["database"] 禂, סꡜ ¡ ˼ master. |
|
| ˼ յ ˅, һ . d["server"] mpilgrim, һ d["mpilgrim"] է́ӫ, Ҁ mpilgrim ˼ 챉 ը. |
Example 1.10. Modifying a dictionary
>>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["database"] = "pubs">>> d {'server': 'mpilgrim', 'database': 'pubs'} >>> d["uid"] = "sa"
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
| ˼ һ˂ ȍ˟ 秼Ղ 眹 . һ˂ ˍ ˟ ՚ . | |
|
| ˼ ț - ϵ ̧ ˅. ը˼ ˍ ꡜ . (, ꦤը ˼ 笡 ˅ . ț ̧졒 ˅ ࡢ ˼ 졒 ˅ Ҁ ˂ ࡢ嵴 汉 ը.) |
˼ ț (key uid, value sa) 秲 һЫ . ȍ˼, տ Ы һ ˼ ˂ ; ס굎 皱˼ Ы һһ ˼ 굵 ˼ ˂ .
| ȍ˟˼ ȍ ˂ Ҋ . ˼ “眹 ” Ȃ 굵 騂; ס굎˼ С . ˼ ˼ ȍ˟ ˅ , ՠ˞ ( ˂ 讀 ) 碱硒 . վ˼ 皡 ˅嵴, ס굎˼ ȍ˟ ̈ . | |
Example 1.11. Mixing datatypes in a dictionary
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'} >>> d["retrycount"] = 3>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d[42] = "douglas"
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
|
| ȍ˟˼ ը ˤ ˼ . ȍ˟˂ ˼ ˅. ը, ۹, ̹ ˼ 皲 ȍ˟皵 . һ˂ ȍ˟, ˼ ݵ ˼ ; ˼ 鴂͂졒 ˅. |
|
| ȍ˟˂ ˼ ς˞, һ ס굎˼ ը, ۹, ( һ ) ˅. ˼ һ˂ ȍ˟ ˂ 졒 ˅. |
Example 1.12. Deleting items from a dictionary
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3} >>> del d[42]>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d.clear()
>>> d {}
|
| del ˼ ȍ˟ Ҽ˞ ȏς ˅. |
|
| clear ˼ ȍ˟ ݵ ȏς. ˼ 顡˂ ˼ 皡 ˅ ˼ ȍ˟ ˂킄. |
ܲ
˂ . ˂ 삄 琲 ˂ Տ ˼ (ȗһ) ˂ , ˂ 篼즗.
| ˂ ˂ ՏС . , Տ ˜ˌ ȗ @ ը ; , ˼ ˅, ˼ ȼ˞ 皂. | |
| ( ݵ Տ ȍ ˅) ˂ ˂ Տ ȗ). ˼ Vector , ס˼ ˂˞ ̹ 皂 ˅ ț ̧ ˞ ˌ ˅. | |
>>> li = ["a", "b", "mpilgrim", "z", "example"]>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[0]
'a' >>> li[4]
'example'
|
| ˜, 5˂ 皫 ˂. ס굎˼ ˂ ˂ 皂졒 ˅ 즗. ˼ 첔 . ˂ ˂ С ˅ . |
|
| 0 Տ ȍ ˅. ˅ ݵ ˂ տ ȗ li[0] . |
|
| 5˂ ˅ li[4]뵴, Ҁ ȗ 0 챉 ը. |
Example 1.14. Negative list indices
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[-1]'example' >>> li[-3]
'mpilgrim'
|
| ˸ 皂 ˂ 碱. ˅ ˼ ݵ ˂ ȗ li[-1]. |
|
| ˸˂ 皂 鴦, վ 炯 : li[n] == li[n - len(li)]. , li[2] == li[2 - 5] == li[-3] . |
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[1:3]['b', 'mpilgrim'] >>> li[1:-1]
['b', 'mpilgrim', 'z'] >>> li[0:3]
['a', 'b', 'mpilgrim']
|
| ˼ 2˂ 皂 ۂ븇, ˂ ˅嵴, “slice” . ՠ˼ Ы, տ 皂 ( li[1]) , տ 皂 ( li[3])( ˼ ւ ˸) ˂ ݵ ւ ț . | |
|
| 皂 ˼ һ ˸皦 . ᱸ ࡢ 皵 : " ܲ, տ 皂 տ ۂ , տ 皂 տ ۂ". ՠ ȍ˂ ݵ . | |
|
| 0 , li[0:3] ˂ տ 3˂ , li[0]ȗ li[3] ՠ. |
Example 1.16. Slicing shorthand
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[:3]['a', 'b', 'mpilgrim'] >>> li[3:]
['z', 'example'] >>> li[:]
['a', 'b', 'mpilgrim', 'z', 'example']
|
| 皂˂ һ 0 , ˼ ס ǂ ˅, ˼ 0 ̂. ˟˂ ˂ li[:3] li[0:3] . |
|
|
즗. 5- , li[:3] ˼ տ 3˂ ՠ졒, li[3:] 2 ՠ. ȍ, li[:n] ȗ տ n˂ ՠ졒, li[n:] һ ՠ . |
|
| ˂ 皂 ݵ ǵ, ˂ ݵ ւ. һ ˼ ˂li ; ס˼ 幫 ݵ ˼ 皡 ț . li[:] ˂ ˟ ȍ ˤ . |
Example 1.17. Adding elements to a list
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li.append("new")>>> li ['a', 'b', 'mpilgrim', 'z', 'example', 'new'] >>> li.insert(2, "new")
>>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new'] >>> li.extend(["two", "elements"])
>>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
| append һ˂ ˂ ̧. | |
|
| insert ˂ . 빚 ̾ ˤ տ ˂ 皂. ˼ ˂ ՠ ަ ; ϫ 2˂ ˂ new li[2] li[6], ˍ. |
|
| extend ¡. ˼ extend 빚 ̉ 즗; ˼ ס һ˂ 빚, ̉. , ˂ 翫. |
Example 1.18. Searching a list
>>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements'] >>> li.index("example")5 >>> li.index("new")
2 >>> li.index("c")
Traceback (innermost last): File "<interactive input>", line 1, in ? ValueError: list.index(x): x not in list >>> "c" in li
0
| index ˂ տ ̉ ̣. 皂 ՠ. | |
|
| index ˂ տ ̉ ̣. , new տ li[2] li[6], һЫ, һ index տ 皂, 2 ՠ . |
| է , ˼ է́ӫ. ˼ ˂ ݲ ˜ , ס˼ 皂 ՠ . ˼ ̡ , ˼ ™. Ҁ ס˼ ˼ 皂 ȍ硒 , ըϡ ˅ ˂ ̾ ը. | |
|
| ˅ 貮 , in ȍ즗, է 1 ՠ졒 ˼ է 0 ՠ. |
| . (if йը ˼) ը, 0 ˼ ݵ ˼ . ˼ ݵ , ˌ. ը (""), ([]), ȍ˟ ({}) ˼ ݵ ; ݵ ը, ȍ˟˼ . | |
Example 1.19. Removing elements from a list
>>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements'] >>> li.remove("z")>>> li ['a', 'b', 'new', 'mpilgrim', 'example', 'new', 'two', 'elements'] >>> li.remove("new")
>>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two', 'elements'] >>> li.remove("c")
Traceback (innermost last): File "<interactive input>", line 1, in ? ValueError: list.remove(x): x not in list >>> li.pop()
'elements' >>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two']
| remove տ ̉ ϡ. | |
| remove տ ̉ ϡ. , new տ һҵ, һ li.remove("new") տ ̉ ϡ. | |
|
| է , ˼ է́ӫ.˼ index ˂ ˤ ՠ |
|
| pop ˼ ˍ˅ . ס˼ : ס˼ ˌ ϡ, ס˼ ȏς ՠ. 즗. ˼ li[-1] , ס˼ ՠ챉 . li.remove(value) , ס˼ ՠ . |
>>> li = ['a', 'b', 'mpilgrim'] >>> li = li + ['example', 'new']>>> li ['a', 'b', 'mpilgrim', 'example', 'new'] >>> li += ['two']
>>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two'] >>> li = [1, 2] * 3
>>> li [1, 2, 1, 2, 1, 2]
ܲ
˼ . ˼ տ 皡 һ վ뵍 .
Example 1.21. Defining a tuple
>>> t = ("a", "b", "mpilgrim", "z", "example")>>> t ('a', 'b', 'mpilgrim', 'z', 'example') >>> t[0]
'a' >>> t[-1]
'example' >>> t[1:3]
('b', 'mpilgrim')
| ˼ ˼ վ ˂. ˼ ˂ ˟̹ ՠ . | |
|
| ˂ ˼ 坡 顡, ˂ 翫. ˂ 皂 坡 , 0 . ˅ ˼ ˂ տ ȗ t[0]. |
|
| ˸˂ 皂, 坡, ˂ . |
|
| , 顡, . ˼ , ˼ ț յ ; , 翫 . |
Example 1.22. Tuples have no methods
>>> t ('a', 'b', 'mpilgrim', 'z', 'example') >>> t.append("new")Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'append' >>> t.remove("z")
Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'remove' >>> t.index("example")
Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'tuple' object has no attribute 'index' >>> "z" in t
1
| ˼ ̧ . ˼ append ˼ extend ˟ 皡 ˅ . | |
|
| ˼ ϡ . remove ˼ pop ˟ . |
|
| ˼ Ț . ˼ index ˟ . |
|
| , ˼ in ȍ ˅ ȍ ˅. |
˼ Dz ?
| ˼ ˅, ՠ . ˌ tuple ﹚ ̑졒 ˼ 皫 ՠ, list ﹚ ̑ 篫. ȍȗ, tuple˼ , list ғ. | |
ܲ
˼ ȍ˟, , ݵ Ղ ( ȗһ!), ˂ , odbchelper.py ղ .
˼ ˂ ݲ ˟ 翫, һ ˼ ˞ ˂ . һ ˍ, ߲һ ˞ ǵ.
Example 1.23. Defining the myParams variable
if __name__ == "__main__": myParams = {"server":"mpilgrim", \ "database":"master", \ "uid":"sa", \ "pwd":"secret" \ }
˂ ˍ˅ ˅. ˜, ӱ 즗. if йը˼ ﹚ ӱ ˅.
, ¹ Վ(“\”) ̀ һ, ჲ.
| һ˂ ჲ ¹ (“\”) ̀ һ , ¹ ˼ վ뵍 ӱ ˅; ˂ ȗ˞ ӱ ˼ ˞ . ˂ IDE ¹ -ӱ , ˼ 傄 . | |
| , (ȍ˟ ˂ ꡜ ˼), ՠ, , ˼ 顡 ˅ ˼ ¹ ը(“\”) ˅ ˅. һ ֵ Վ ւ́嵴 Ҁ ȡ ࡢ챉 븇 ˅ ը, ס˼ ˂ ը. | |
տ, ˼ myParams ˂ , ˼ һ˂ ס . ˼ VBScript option explicitȍ ȍ ꡜ . ﵵ, VBScript , ˼ ˞ 禂 쵵 ; ˼ է́ .
Example 1.24. Referencing an unbound variable
>>> x Traceback (innermost last): File "<interactive input>", line 1, in ? NameError: There is no variable named 'x' >>> x = 1 >>> x 1
˼ 笡 ȍ
ܲ
Յ˂ ˂ һ ¹ ȍ տ .
Example 1.25. Assigning multiple values at once
>>> v = ('a', 'b', 'e') >>> (x, y, z) = v>>> x 'a' >>> y 'b' >>> z 'e'
| v ˂ , (x, y, z) ˂ . һ һ 븇 v ˂ ˂ , Ы, . |
˼ ݵ ˂ 翫. һ ՟ˤ˂ 졒 . C , ˼ enum ȍ졒 ˂ ȗ ¡ һЂ硒 , ס˼ ¹˞ һ ፂ . , ˼ ˌ range ﹚ - ȍ ¹˞ ˅.
Example 1.26. Assigning consecutive values
>>> range(7)[0, 1, 2, 3, 4, 5, 6] >>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)
>>> MONDAY
0 >>> TUESDAY 1 >>> SUNDAY 6
˼ - ȍ , ݵ ՠ븇, ՠ ﹚ ̈ ˅. ˼ ס һ˂ ̑ނ ˅, Ҽ˞ ˅. osݵ ւ, ˼ , 3 ˌ Ғ˂
ܲ
˼ ը ﵂ ϡ. ˼ ˉ ւ ˅, ˌ ˞ ȍ˼ %s ը .
| ը Ы C ˂ sprintf﹚ ˼ ը ȍ. | |
Example 1.27. Introducing string formatting
>>> k = "uid" >>> v = "sa" >>> "%s=%s" % (k, v)'uid=sa'
|
| ˟̹ ˼ ը . տ %s k˂ ̹; տ %s v˂ . ը ˅ ݵ ը˼ ( , ) 皵. |
(k, v) 즗. һ ס굎 Dz ݡ ˅ Ȃ.
˼ ը ¡ 챉 ˤ ˼ ˼ ࡢ皵 , ը С ˜ ¡ 즗 ǫ, 皵 . ס˼ ը ¡ . ס˼ .
Example 1.28. String formatting vs. concatenating
>>> uid = "sa" >>> pwd = "secret" >>> print pwd + " is not a good password for " + uidsecret is not a good password for sa >>> print "%s is not a good password for %s" % (pwd, uid)
secret is not a good password for sa >>> userCount = 6 >>> print "Users connected: %d" % (userCount, )
![]()
Users connected: 6 >>> print "Users connected: " + userCount
Traceback (innermost last): File "<interactive input>", line 1, in ? TypeError: cannot add type "int" to string
| + ը ¡ Ȑ. | |
|
| ȍ , ը Ы ¡ 삄 . |
|
| (userCount, ) һ˂ . , ը˼ ˼ ȗ , һ ᱵ ˅: ס˼ 騸 . ȍ, ˼ , , ˼ ȍ˟ ˂ ȗ ւ ˅, һ һ˂ ˂ . , ˼ (userCount) һ˂ ˼ userCount˂ . |
|
| ը Ы %s %d ۂ븇 ۹ . |
|
| ը -ըС ¡ ̵ է́ӫ. ը , ը ¡˼ ݵ ը . |
ܲ
˂ ˌ 傄 ȍ˂ һ տ뵴, ס˼ ﹚ ˂ ˞븇 һ˂ ߫ վ ϡ 篫.
Example 1.29. Introducing list comprehensions
>>> li = [1, 9, 8, 4] >>> [elem*2 for elem in li][2, 18, 16, 8] >>> li
[1, 9, 8, 4] >>> li = [elem*2 for elem in li]
>>> li [2, 18, 16, 8]
| 킯챉 ˤЫ, ס . li ߡ ˅ . ˼ տ li , ˞ ˂ elem . ˼ elem*2 ﹚ ˞졒 ՠ ̧. | |
|
| տ˼ ˂ 즗. |
|
| տ˂ ߡ ˅ ˟. ˕ 禡 ˼ ۂ ﵵ ; ˼ ț ̈, տ 졇, ס˼ . |
Example 1.30. List comprehensions in buildConnectionString
["%s=%s" % (k, v) for k, v in params.items()]
˜, ˼ ˼ params ȍ˟˂ items﹚ ̉졒 ˅ . ﹚ ȍ˟˂ ݵ ˂ ՠ.
Example 1.31. keys, values, and items
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} >>> params.keys()['server', 'uid', 'database', 'pwd'] >>> params.values()
['mpilgrim', 'master', 'sa', 'secret'] >>> params.items()
[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]
| ȍ˟˂ keys ݵ ՠ. ȍ˟ ˂ ˂ С (즗, ȍ˟˂ ˼ С ), һ ס˼ . | |
|
| values ݵ ՠ. keys ˂ ՠ ˼ , n ˂ ݵ params.values()[n] == params[params.keys()[n]] . |
|
| items (key, value)˂ ˂ ՠ. ȍ˟ ˅ ݵ ւ. |
buildConnectionString Dz ȓ . ˼ , params.items(), ̑졒, ț ߱ ը ˞. ț params.items() ˼ ҹ˂ , һ ț ˂ params ȍ˟ ¡ ݵ ւ ը .
Example 1.32. List comprehensions in buildConnectionString, step by step
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} >>> params.items() [('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')] >>> [k for k, v in params.items()]['server', 'uid', 'database', 'pwd'] >>> [v for k, v in params.items()]
['mpilgrim', 'sa', 'master', 'secret'] >>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
|
| ˂ ȍ params.items() ՠՂ 즗. ˼ - ˂ ȍ. params.items()˂ տ ('server', 'mpilgrim'), տ˂ տ ՠ, k 'server' 騼 v 'mpilgrim' յ . v˂ Ǹ̂졒 ˅ ՠ k ւ졒 ˅, տ˼ params.keys() Ы. (˼ ˼ տ ȍ 硒 皵 ; ˼ , ˼ Ǹ 첔һ f ˅.) |
|
| ˼ , һ k˂ ˼ Ǹ̂, տ˼ params.values() Ы.. |
|
| ˤ˂ ը ͂, ȍ˟˂ ˂ ݵ ւ ը˂ . ˼ ˂ﵵ ˂ ̉塇 ; Ӳ ˅ ˂ һ˂ ը ͂ . |
ܲ
˼ - ˂ key=value˂ 翫, ˼ ס굎 һ˂ ը ͂졒 . ը˂ ˂ ը ͂, ը ̹˂ join ȍ즗.
Example 1.33. Joining a list in buildConnectionString
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
챉˟ ˅ ȍ˼, ՠՂ Ȃ ﹚ ̹, ըе ̹, ݵ ̹ . ˼ ȡ ը variables ̹ Ȃ ࡢ . һ , ˧ ȓ, ˼ ը ";" ̹ ̹ , ˼ ס˂ join ̉졒 ˅ .
妵, join ˂ һ˂ ը ͂嵴, ˂ ˼ - . ՠ - ; ˂ ը . ס˼ ըе ˅.
| join ˼ ը˂ ; ס˼ . ը һ ȗ 皡 ˅ ͂ ˼ է́ . | |
Example 1.34. Output of odbchelper.py
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} >>> ["%s=%s" % (k, v) for k, v in params.items()] ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] >>> ";".join(["%s=%s" % (k, v) for k, v in params.items()]) server=mpilgrim;uid=sa;database=master;pwd=secret
ը˼ help ﹚ ՠ ̉ ˂ ̉, ס˼ ˌ ܱ ̉ 篫.
ȍ : ˸ ȡ Տ , һ join ˂ ȗ, ס˼ 빚 ̑ . ˼ ȍֵ ˼ վ ࡢ, join ˅. 1.6 ˟ ՚˟Ы, ը˼ ݵ 皡 ˅ . ˂ string ݵ ˅嵴 ݵ ը ﹚ ˅; ﹚ ը ˂ տ 빚 ̑. ﹚˼ ըˤ қ ҫ, ס˼ lower, upper, split ˼ ﹚ ˂ ˅. һ ˼ ˼ ț join ՠ, ס˼ ˂ , ˼ ס˼ 鵂 string ݵ˂ ա ˌ (ס˼ ˟ ˼ 굎 皡 ˅). һ ț join ȍ, һ ˼ ˼ վ . ס 靫, ˼ string.join ﹚ ȍ ˅.
˼ ը 僡ҫ 炄 ˅ ̱ . ա ˅, ס˼ split .
Example 1.35. Splitting a string
>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] >>> s = ";".join(li) >>> s 'server=mpilgrim;uid=sa;database=master;pwd=secret' >>> s.split(";")['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] >>> s.split(";", 1)
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
| split ը - 僡Ղ븇 join˂ ՠ . (“;”) ˟ ǵ˸ 즗; ס˼ ՠ ˂ ˡ һһ . | |
|
| split ˞ տ 빚 ̑, 빚 僡 鸹. (“"˸, ˞ 빚...” ˼ ˸ˌ ˂ ﹚ Տ .) |
| anystring.split(delimiter, 1) ׁ. һ˂ ը Ț ը ̣ ը ˂ ݵ 굎 (ס˼ ՠ ˂ տ 皲皡) ը ˂ ݵ 굎 (ס˼ տ Ы) ւ졒 . | |
ܲ
odbchelper.py ᴡ ̉˼ ˟ 킯 .
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string.""" return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) if __name__ == "__main__": myParams = {"server":"mpilgrim", \ "database":"master", \ "uid":"sa", \ "pwd":"secret" \ } print buildConnectionString(myParams)
Example 1.37. Output of odbchelper.py
server=mpilgrim;uid=sa;database=master;pwd=secret
˸ˌ ˟, ˼ ݵ 굎 졒 ˅ 즗:
[1] Յ ݲ˼ “object(̹)” վ ˂. ݲЫ, ݵ ̹ ՠ 稲 ˂킄; ݲЫ, ݵ ̹ С ˂킄. Ы, ˂ ˸; ̹ ( Ы һ ), ݵ ̹ С 굵 . ( Ы 3ˌ ). һ ݵ ˼ ̹. ס˼ ˅ 빚 ﹚ 眹 ˅ ( Ы 2ˌ ) ݵ ˼ ̹.
[2] , ס ˉ. ȍ˟˂ ՠ . ̹ , һ ፲ 翫, ס˼ 煵 ס ȍ˟˂ ȍ ˼ ˟ . ը, ፲ ̵ ˼ ȍ˟-˞ ȍ˟˂ ȍ ˅.
| << ը | 2 ˌ ȍ˂ >> |