คำถามติดแท็ก generator

เครื่องกำเนิดไฟฟ้าเป็นลักษณะทั่วไปของรูทีนย่อยซึ่งส่วนใหญ่ใช้เพื่อลดความซับซ้อนในการเขียนตัววนซ้ำ คำสั่งผลตอบแทนในเครื่องกำเนิดไฟฟ้าไม่ได้ระบุโครูทีนที่จะข้ามไป แต่จะส่งผ่านค่ากลับไปที่รูทีนพาเรนต์

30
คำหลัก "ผลผลิต" ทำหน้าที่อะไร
การใช้yieldคำหลักใน Python คืออะไรและใช้ทำอะไร? ตัวอย่างเช่นฉันพยายามที่จะเข้าใจรหัสนี้1 : def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild และนี่คือผู้โทร: result, candidates = [], [self] while candidates: node = candidates.pop() distance = node._get_dist(obj) if distance <= max_dist and distance …



8
Ruby on Rails สร้างฟิลด์ model: type - ตัวเลือกสำหรับ field: type คืออะไร?
ฉันกำลังพยายามสร้างโมเดลใหม่และลืมไวยากรณ์เพื่ออ้างอิง ID ของโมเดลอื่น ฉันค้นหาด้วยตัวเอง แต่ฉันไม่ได้คิดออกมาในบรรดาลิงค์เอกสาร Ruby on Rails ทั้งหมดของฉันวิธีการค้นหาแหล่งที่ชัดเจน $ rails g model Item name:string description:text(และที่นี่reference:productหรือreferences:product) แต่คำถามที่ดีกว่าคือที่หรือวิธีการที่ผมสามารถมองหาชนิดของความโง่เขลานี้ได้อย่างง่ายดายในอนาคตหรือไม่ หมายเหตุ: ฉันได้เรียนรู้วิธีการที่ยากว่าถ้าฉันพิมพ์ผิดหนึ่งในตัวเลือกเหล่านี้และทำการโยกย้ายของฉันจากนั้น Ruby on Rails จะทำให้ฐานข้อมูลของฉันrake db:rollbackหมดสิ้น ... ฉันแน่ใจว่าฉันไม่เข้าใจบางอย่าง แต่จนกว่าฉันจะ ... ข้อมูล "รายละเอียด" ที่ส่งคืนโดยrails g modelยังทำให้ฉันเกา ...

11
วิธีขี้เกียจสำหรับอ่านไฟล์ขนาดใหญ่ใน Python?
ฉันมีไฟล์ขนาดใหญ่มาก 4GB และเมื่อฉันพยายามอ่านมันคอมพิวเตอร์ของฉันค้าง ดังนั้นฉันต้องการที่จะอ่านทีละชิ้นและหลังจากการประมวลผลแต่ละชิ้นเก็บชิ้นส่วนที่ดำเนินการเป็นไฟล์อื่นและอ่านชิ้นต่อไป มีวิธีการกับyieldชิ้นส่วนเหล่านี้หรือไม่? ฉันชอบที่จะมีวิธีการขี้เกียจ

7
ฉันสามารถใช้ไวยากรณ์ฟังก์ชั่นลูกศรของ ES6 กับเครื่องกำเนิดไฟฟ้าได้หรือไม่? (เครื่องหมายลูกศร)
ฉันจะอธิบายสิ่งนี้อย่างไร: function *(next) {} ด้วยลูกศร ฉันลองชุดค่าผสมทั้งหมดที่ฉันสามารถนึกได้และไม่พบเอกสารใด ๆ (ปัจจุบันใช้โหนด v0.11.14)

8
PHP มีความหมายอย่างไร
ฉันเพิ่งพบรหัสนี้: function xrange($min, $max) { for ($i = $min; $i <= $max; $i++) { yield $i; } } ฉันไม่เคยเห็นyieldคำหลักนี้มาก่อน พยายามเรียกใช้รหัสที่ฉันได้รับ ข้อผิดพลาดในการแยกวิเคราะห์: ข้อผิดพลาดทางไวยากรณ์ T_VARIABLE ที่ไม่คาดคิดบนบรรทัด x yieldคำหลักนี้คืออะไร? มันยังใช้งานได้กับ PHP? และถ้าเป็นฉันจะใช้มันได้อย่างไร

12
ทำความเข้าใจกับเครื่องกำเนิดไฟฟ้าใน Python
ฉันกำลังอ่านตำรา Python ในขณะนี้และกำลังมองหาเครื่องกำเนิดไฟฟ้า ฉันพบว่ามันยากที่จะทำให้หัวกลม เมื่อฉันมาจากพื้นหลังของจาวามีจาวาเทียบเท่าหรือไม่ หนังสือเล่มนี้พูดถึง 'ผู้ผลิต / ผู้บริโภค' แต่เมื่อฉันได้ยินว่าฉันคิดถึงเกลียว ตัวกำเนิดคืออะไรและทำไมคุณถึงใช้มัน ชัดเจนโดยไม่ต้องอ้างถึงหนังสือใด ๆ (เว้นแต่คุณจะพบคำตอบที่ง่ายและตรงไปตรงมาจากหนังสือ) อาจมีตัวอย่างถ้าคุณรู้สึกใจกว้าง!
218 python  generator 

16
คุณสามารถใช้ฟังก์ชันตัวสร้าง Python เพื่ออะไรได้บ้าง
ฉันเริ่มที่จะเรียนรู้ Python และฉันได้พบกับฟังก์ชั่นเครื่องกำเนิด ฉันต้องการทราบว่าปัญหาประเภทใดที่หน้าที่เหล่านี้ดีในการแก้ไข
213 python  generator 

7
วิธีการเลือกเพียงหนึ่งรายการจากเครื่องกำเนิดไฟฟ้า?
ฉันมีฟังก์ชั่นเครื่องกำเนิดไฟฟ้าดังนี้: def myfunct(): ... yield result วิธีปกติในการเรียกใช้ฟังก์ชันนี้คือ: for r in myfunct(): dostuff(r) คำถามของฉันมีวิธีที่จะได้รับเพียงหนึ่งองค์ประกอบจากเครื่องกำเนิดไฟฟ้าเมื่อใดก็ตามที่ฉันชอบ? ตัวอย่างเช่นฉันต้องการทำสิ่งที่ชอบ: while True: ... if something: my_element = pick_just_one_element(myfunct()) dostuff(my_element) ...

11
จะเข้าร่วมเครื่องกำเนิดสองเครื่องใน Python ได้อย่างไร
ฉันต้องการเปลี่ยนรหัสต่อไปนี้ for directory, dirs, files in os.walk(directory_1): do_something() for directory, dirs, files in os.walk(directory_2): do_something() รหัสนี้: for directory, dirs, files in os.walk(directory_1) + os.walk(directory_2): do_something() ฉันได้รับข้อผิดพลาด: ประเภทตัวถูกดำเนินการที่ไม่รองรับสำหรับ +: 'ตัวกำเนิด' และ 'ตัวสร้าง' จะเข้าร่วมเครื่องกำเนิดสองเครื่องใน Python ได้อย่างไร
187 python  generator 

5
ฉันจะสร้างอาร์เรย์ numpy จากเครื่องกำเนิดไฟฟ้าได้อย่างไร
ฉันจะสร้างอาร์เรย์ numpy จากวัตถุตัวสร้างได้อย่างไร ให้ฉันอธิบายปัญหา: >>> import numpy >>> def gimme(): ... for x in xrange(10): ... yield x ... >>> gimme() <generator object at 0x28a1758> >>> list(gimme()) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> numpy.array(xrange(10)) array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> …
166 python  numpy  generator 

9
วิธีการตรวจสอบว่าวัตถุเป็นวัตถุกำเนิดในหลาม?
ในไพ ธ อนฉันจะตรวจสอบได้อย่างไรว่าวัตถุเป็นวัตถุกำเนิด? ลองนี้ - >>> type(myobject, generator) ให้ข้อผิดพลาด - Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'generator' is not defined (ฉันรู้ว่าฉันสามารถตรวจสอบว่าวัตถุมีnextวิธีการที่จะเป็นตัวสร้างหรือไม่ แต่ฉันต้องการวิธีการใช้ซึ่งฉันสามารถกำหนดประเภทของวัตถุใด ๆ ไม่ใช่แค่กำเนิด)
157 python  generator 

19
มีกลไกในการวนรอบ x ครั้งใน ES6 (ECMAScript 6) โดยไม่มีตัวแปรที่ไม่แน่นอนหรือไม่?
วิธีทั่วไปในการวนรอบxเวลาใน JavaScript คือ: for (var i = 0; i < x; i++) doStuff(i); แต่ฉันไม่ต้องการใช้++โอเปอเรเตอร์หรือมีตัวแปรที่ไม่แน่นอนใด ๆ มีวิธีใดใน ES6 ที่จะวนซ้ำxอีกทางหนึ่ง ฉันรักกลไกของรูบี้: x.times do |i| do_stuff(i) end มีอะไรที่คล้ายกันใน JavaScript / ES6? ฉันสามารถโกงและสร้างเครื่องกำเนิดของตัวเองได้: function* times(x) { for (var i = 0; i < x; i++) yield i; } for (var i of times(5)) { …

17
การรีเซ็ตออบเจ็กต์ตัวสร้างใน Python
ฉันมีวัตถุเครื่องกำเนิดไฟฟ้าที่ส่งคืนโดยผลผลิตหลายรายการ การเตรียมการเพื่อเรียกเครื่องมือสร้างนี้ค่อนข้างใช้เวลานาน นั่นคือเหตุผลที่ฉันต้องการใช้ตัวกำเนิดซ้ำหลายครั้ง y = FunctionWithYield() for x in y: print(x) #here must be something to reset 'y' for x in y: print(x) แน่นอนฉันกำลังคำนึงถึงการคัดลอกเนื้อหาลงในรายการง่าย ๆ มีวิธีรีเซ็ตตัวสร้างของฉันหรือไม่?
153 python  generator  yield 

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