2017-02-16 11 views
6

PEP 492async with sözdizimine erişmesi gereken Python 3.5 kullanıyorum, ancak kullanmaya çalıştığımda bir SyntaxError alıyorum. Neyi yanlış yapıyorum?Python 3.5: "async with", SyntaxError ile sonuçlanır. Niye ya?

In [14]: sys.version 
Out[14]: '3.5.2 (default, Oct 11 2016, 04:59:56) \n[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)]' 

In [15]: async with aiohttp.ClientSession() as session: 
    File "<ipython-input-15-9799c5ce74cf>", line 1 
    async with aiohttp.ClientSession() as session: 
      ^
SyntaxError: invalid syntax 
+6

Bağlandığınız sayfayı alıntılama: * "Eşzamansızlık işleviyle eşzamanlı olmayan bir SyntaxError işlevidir." * – vaultah

+0

"Eşzamansız" ifadesini bağlam olmadan kullanamazsınız. Bir eşzamanlama işlevinde kullanmayı deneyin. – sobolevn

+0

@vaultah Lütfen yorumunuzu bir yanıta taşıyın ve – vaerek

cevap

13

Sen async fonksiyonu olmadan async with kullanamaz. docs say gibi:

Bir zaman uyumsuz def fonksiyonunun dışarıyla zaman uyumsuz kullanmak için bir SyntaxError olduğunu.

Ama bu kod çalışır:

async def some_function(): 
    async with aiohttp.ClientSession() as session: 
     pass 

Ya docs örneğin bir göz.

+0

Yanlış bölümden alıntı yaptığınızı düşünüyorum. Doğru atıf, [PEP - 492: "Yeni Sözdizimi" bölümündeki son cümledir (https://www.python.org/dev/peps/pep-0492/#new-syntax): _ "Bu '' synynxError' '' 'async def' işlevinin dışında 'ile uyumsuz' işlevini kullanmak için. '_ – MSeifert

+0

@MSeifert teşekkürler, güncellendi! – sobolevn

İlgili konular