คำถามติดแท็ก python-3.5

เวอร์ชันของภาษาโปรแกรม Python ที่เผยแพร่เมื่อวันที่ 13 กันยายน 2015 สำหรับปัญหาที่เฉพาะเจาะจงสำหรับ Python 3.5 ใช้แท็ก [python] และ [python-3.x] ทั่วไปมากขึ้นเท่าที่จะทำได้

4
ฉันจะระบุได้อย่างไรว่าชนิดการคืนค่าของเมธอดนั้นเหมือนกับคลาสของตัวเอง?
ฉันมีรหัสต่อไปนี้ในหลาม 3: class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: Position) -> Position: return Position(self.x + other.x, self.y + other.y) แต่บรรณาธิการของฉัน (PyCharm) บอกว่าตำแหน่งอ้างอิงไม่สามารถแก้ไขได้ (ใน__add__วิธีการ) ฉันจะระบุได้อย่างไรว่าฉันต้องการประเภทการส่งคืนเป็นประเภทPositionใด แก้ไข: ฉันคิดว่านี่เป็นปัญหา PyCharm จริง ๆ แล้วมันใช้ข้อมูลในการเตือนและการทำให้โค้ดเสร็จสมบูรณ์ แต่แก้ไขให้ฉันถ้าฉันผิดและจำเป็นต้องใช้ไวยากรณ์อื่น ๆ

6
Pandas: ฉันจะใช้ฟังก์ชัน Apply () สำหรับคอลัมน์เดียวได้อย่างไร
ฉันมีกรอบข้อมูลแพนด้าสองคอลัมน์ ฉันต้องการเปลี่ยนค่าของคอลัมน์แรกโดยไม่ส่งผลกระทบต่อค่าที่สองและกลับกรอบข้อมูลทั้งหมดโดยมีการเปลี่ยนแปลงค่าของคอลัมน์แรก ฉันจะทำเช่นนั้นโดยใช้การสมัครในแพนด้าได้อย่างไร?

5
คำใบ้ประเภทใดใน Python 3.5
หนึ่งในคุณสมบัติที่ได้รับการกล่าวถึงมากที่สุดใน Python 3.5 คือ ประเภทคำแนะนำ ตัวอย่างของคำแนะนำประเภทถูกกล่าวถึงในบทความนี้และคนนี้ในขณะที่ยังกล่าวถึงคำแนะนำการใช้งานประเภทอย่างมีความรับผิดชอบ ใครสามารถอธิบายเพิ่มเติมเกี่ยวกับพวกเขาและเมื่อพวกเขาควรจะใช้และเมื่อไม่ได้?

3
วิธีระบุประเภทการคืนสินค้าหลายประเภทโดยใช้คำใบ้ประเภท
ฉันมีฟังก์ชั่นในหลามที่สามารถกลับมาได้หรือbool listมีวิธีการระบุประเภทการคืนสินค้าโดยใช้คำใบ้ประเภทหรือไม่ ตัวอย่างเช่นนี่เป็นวิธีที่ถูกต้องหรือไม่ def foo(id) -> list or bool: ...

1
วิธีระบุชนิดส่งคืน“ nullable” พร้อมคำแนะนำประเภท
สมมติว่าฉันมีฟังก์ชั่น: def get_some_date(some_argument: int=None) -> %datetime_or_None%: if some_argument is not None and some_argument == 1: return datetime.utcnow() else: return None ฉันจะระบุประเภทส่งคืนสำหรับสิ่งที่สามารถเป็นได้Noneอย่างไร

3
สัญลักษณ์ '@ =' สำหรับใน Python คืออะไร
ฉันรู้ว่า@สำหรับนักตกแต่ง แต่@=สำหรับ Python มีอะไรบ้าง? มันเป็นเพียงการจองสำหรับแนวคิดในอนาคตบางอย่าง? นี่เป็นเพียงหนึ่งในหลาย ๆ tokenizer.pyคำถามของฉันในขณะที่อ่าน

9
ImportError: ไม่มีโมดูลชื่อ 'django.core.urlresolvers'
ฉันทำงานเกี่ยวกับโครงการ Django ที่ฉันต้องการสร้างแบบฟอร์มสำหรับอินพุต ผมพยายามที่จะนำเข้าจากreverse django.core.urlresolversฉันพบข้อผิดพลาด: line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers' ฉันใช้ Python 3.5.2, Django 2.0 และ MySQL

3
ทำไม x ** 4.0 เร็วกว่า x ** 4 ใน Python 3
ทำไมจึงx**4.0เร็วกว่าx**4? ฉันใช้ CPython 3.5.2 $ python -m timeit "for x in range(100):" " x**4.0" 10000 loops, best of 3: 24.2 usec per loop $ python -m timeit "for x in range(100):" " x**4" 10000 loops, best of 3: 30.6 usec per loop ฉันพยายามเปลี่ยนพลังที่ฉันยกขึ้นมาเพื่อดูว่ามันทำหน้าที่อย่างไรและตัวอย่างเช่นถ้าฉันเพิ่ม x เป็นพลังของ 10 หรือ 16 มันกระโดดจาก 30 …

2
ฉันจะระบุประเภทฟังก์ชันในคำแนะนำประเภทของฉันได้อย่างไร
ฉันต้องการใช้คำแนะนำประเภทในโครงการ Python 3.5 ปัจจุบันของฉัน ฟังก์ชันของฉันควรได้รับฟังก์ชันเป็นพารามิเตอร์ ฉันจะระบุฟังก์ชันประเภทในคำแนะนำประเภทของฉันได้อย่างไร import typing def my_function(name:typing.AnyStr, func: typing.Function) -> None: # However, typing.Function does not exist. # How can I specify the type function for the parameter `func`? # do some processing pass ฉันตรวจสอบPEP 483แต่ไม่พบคำแนะนำประเภทฟังก์ชันที่นั่น

5
คำใบ้ประเภท Python โดยไม่มีการนำเข้าแบบวนรอบ
ฉันกำลังพยายามแบ่งชั้นเรียนขนาดใหญ่ของฉันออกเป็นสองชั้น โดยพื้นฐานแล้วจะอยู่ในคลาส "หลัก" และมิกซ์อินที่มีฟังก์ชันเพิ่มเติมดังนี้: main.py ไฟล์: import mymixin.py class Main(object, MyMixin): def func1(self, xxx): ... mymixin.py ไฟล์: class MyMixin(object): def func2(self: Main, xxx): # <--- note the type hint ... ขณะนี้ใช้งานได้ดี แต่MyMixin.func2แน่นอนว่าคำใบ้ประเภทไม่สามารถใช้งานได้ ฉันไม่สามารถนำเข้าได้main.pyเนื่องจากฉันได้รับการนำเข้าแบบวนรอบและหากไม่มีคำใบ้ตัวแก้ไขของฉัน (PyCharm) ไม่สามารถบอกได้ว่าselfคืออะไร ฉันใช้ Python 3.4 และยินดีที่จะย้ายไปที่ 3.5 หากมีวิธีแก้ปัญหา มีวิธีใดบ้างที่ฉันสามารถแบ่งคลาสของฉันออกเป็นสองไฟล์และเก็บ "การเชื่อมต่อ" ทั้งหมดไว้เพื่อให้ IDE ของฉันยังคงเสนอการเติมข้อมูลอัตโนมัติให้ฉันและสินค้าอื่น ๆ ทั้งหมดที่มาจากคลาสนั้นรู้ประเภทหรือไม่

6
ความแตกต่างระหว่าง numpy dot () และการคูณเมทริกซ์ Python 3.5+ @
ฉันเพิ่งย้ายไป Python 3.5 และสังเกตเห็นผู้ประกอบการคูณเมทริกซ์ใหม่ (@)บางครั้งทำงานแตกต่างกันจากจุด numpyผู้ประกอบการ ตัวอย่างเช่นสำหรับอาร์เรย์ 3 มิติ: import numpy as np a = np.random.rand(8,13,13) b = np.random.rand(8,13,13) c = a @ b # Python 3.5+ d = np.dot(a, b) ตัว@ดำเนินการส่งคืนอาร์เรย์ของรูปร่าง: c.shape (8, 13, 13) ในขณะที่np.dot()ฟังก์ชันส่งกลับ: d.shape (8, 13, 8, 13) ฉันจะสร้างผลลัพธ์เดียวกันด้วย numpy dot ได้อย่างไร มีความแตกต่างที่สำคัญอื่น ๆ หรือไม่?

1
เหตุใด str.translate จึงเร็วกว่าใน Python 3.5 มากเมื่อเทียบกับ Python 3.4
ฉันพยายามลบอักขระที่ไม่ต้องการออกจากสตริงที่กำหนดโดยใช้text.translate()ใน Python 3.4 รหัสขั้นต่ำคือ: import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapper)) มันทำงานได้ตามที่คาดไว้ อย่างไรก็ตามโปรแกรมเดียวกันเมื่อรันใน Python 3.4 และ Python 3.5 ให้ความแตกต่างกันมาก รหัสในการคำนวณเวลาคือ python3 -m timeit -s "import sys;s = 'abcde12345@#@$#%$'*1000 ; mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$'); …

4
"ไฟแล้วลืม" python async / รอ
บางครั้งมีการดำเนินการแบบอะซิงโครนัสที่ไม่สำคัญบางอย่างที่จำเป็นต้องเกิดขึ้น แต่ฉันไม่ต้องการรอให้เสร็จสิ้น ในการใช้งานโครูทีนของ Tornado คุณสามารถ "ยิงและลืม" ฟังก์ชันอะซิงโครนัสได้โดยเพียงแค่จำyieldคำสำคัญ ฉันพยายามหาวิธี "ยิงและลืม" ด้วยไวยากรณ์async/ awaitไวยากรณ์ใหม่ที่เผยแพร่ใน Python 3.5 เช่นข้อมูลโค้ดแบบง่าย: async def async_foo(): print("Do some stuff asynchronously here...") def bar(): async_foo() # fire and forget "async_foo()" bar() สิ่งที่เกิดขึ้นแม้ว่าจะbar()ไม่ดำเนินการและเราได้รับคำเตือนรันไทม์แทน: RuntimeWarning: coroutine 'async_foo' was never awaited async_foo() # fire and forget "async_foo()"

1
วิธีใส่คำอธิบายประกอบประเภทของค่าที่ส่งคืนหลายค่า
ฉันจะใช้คำแนะนำประเภทเพื่อใส่คำอธิบายประกอบฟังก์ชันที่ส่งคืนค่าIterableที่ให้ค่าสองค่าเสมอ: a boolและ a ได้strอย่างไร คำใบ้Tuple[bool, str]อยู่ใกล้ยกเว้นว่าจะ จำกัด ประเภทค่าส่งคืนเป็นทูเปิลไม่ใช่ตัวสร้างหรือประเภทอื่นที่ทำซ้ำได้ ส่วนใหญ่ฉันสงสัยเพราะฉันต้องการใส่คำอธิบายประกอบฟังก์ชันfoo()ที่ใช้ในการคืนค่าหลายค่าเช่นนี้: always_a_bool, always_a_str = foo() โดยปกติจะทำหน้าที่เช่นfoo()do something like return a, b(ซึ่งส่งคืน tuple) แต่ฉันต้องการให้คำใบ้ประเภทมีความยืดหยุ่นพอที่จะแทนที่ tuple ที่ส่งคืนด้วยเครื่องกำเนิดไฟฟ้าหรือรายการหรืออย่างอื่น

4
ความแตกต่างระหว่าง Coroutine และ Future / Task ใน Python 3.5
สมมติว่าเรามีฟังก์ชันดัมมี่: async def foo(arg): result = await some_remote_call(arg) return result.upper() อะไรคือความแตกต่างระหว่าง: import asyncio coros = [] for i in range(5): coros.append(foo(i)) loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(coros)) และ: import asyncio futures = [] for i in range(5): futures.append(asyncio.ensure_future(foo(i))) loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(futures)) บันทึก : ตัวอย่างส่งคืนผลลัพธ์ แต่นี่ไม่ใช่จุดสำคัญของคำถาม เมื่อค่าตอบแทนเรื่องการใช้งานแทนgather()wait() โดยไม่คำนึงถึงค่าตอบแทน, ensure_future()ฉันกำลังมองหาเพื่อความชัดเจนในการwait(coros)และwait(futures)ทั้งสองเรียกใช้โครูทีนดังนั้นเมื่อใดและทำไมจึงควรพันโครูทีนensure_future? โดยพื้นฐานแล้ววิธีที่ถูกต้อง (tm) ในการเรียกใช้การดำเนินการที่ไม่บล็อกโดยใช้ …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.