Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!newsgate.cistron.nl!newsgate.news.xs4all.nl!194.109.133.85.MISMATCH!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '(especially': 0.07; 'length.': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:80.91.229.12': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'received:lo.gmane.org': 0.09; 'subject:files': 0.09; 'files.': 0.09; 'gui': 0.13; 'bieber': 0.16; 'email addr:ix.netcom.com': 0.16; 'email name:wlfraed': 0.16; 'from:addr:ix.netcom.com': 0.16; 'from:addr:wlfraed': 0.16; 'from:name:dennis lee bieber': 0.16; 'language)': 0.16; 'message- id:@4ax.com': 0.16; 'okay,': 0.16; 'received:wlfraed': 0.16; 'url:netcom': 0.16; 'url:wlfraed': 0.16; 'wulfraed': 0.16; 'wrote:': 0.16; 'wed,': 0.17; 'jan': 0.19; 'possibly': 0.19; 'url:home': 0.21; 'pascal': 0.23; 'received:166': 0.23; "shouldn't": 0.23; 'guess': 0.25; '(in': 0.26; 'function': 0.27; "i'm": 0.27; 'separate': 0.28; 'lee': 0.28; 'convention': 0.28; 'second': 0.29; 'class': 0.29; 'lines': 0.30; 'definition': 0.30; 'source': 0.32; 'done': 0.33; 'to:addr:python-list': 0.33; 'file.': 0.34; 'operations': 0.34; 'header:X-Complaints-To:1': 0.34; 'something': 0.35; 'charset:us-ascii': 0.36; 'two': 0.37; 'but': 0.37; 'received:org': 0.37; 'page': 0.37; 'could': 0.37; 'think': 0.38; 'feed': 0.38; "i'd": 0.39; 'extend': 0.39; 'doing': 0.39; 'subject:: ': 0.39; 'did': 0.39; 'to:addr:python.org': 0.40; 'size.': 0.71; 'dennis': 0.73; 'learned': 0.73; '-0800': 0.84; 'length;': 0.84 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Dennis Lee Bieber Subject: Re: Distributing methods of a class across multiple files Date: Wed, 25 Jan 2012 11:53:54 -0500 References: <569a94a3-cd84-449b-b0c1-80348014aac6@i10g2000pbl.googlegroups.com> <7c9ae6dd-c175-4376-be70-633785ed9386@iu7g2000pbc.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: mobile-166-147-103-082.mycingular.net X-Newsreader: Forte Agent 6.00/32.1186 X-No-Archive: YES X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 25 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1327510460 news.xs4all.nl 6859 [2001:888:2000:d::a6]:53924 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:19405 On Wed, 25 Jan 2012 07:19:16 -0800 (PST), lh wrote: >Third, length. Well 5000 lines eh... I'm nowhere near that guess I can >stick with one file. Original Pascal (primarily a teaching language) did not support separate compilation nor "include" files. Everything was done within one source file. (Often with a one-pass recursive descent parser) The old convention I'd learned was to keep functions down to a (printer) page (classical 6 lines per inch, 11" high, tractor feed -- so about 60 lines per function -- possibly extend to a second page if really needed. I'd think even a large complex class definition could fit each method into something of that size. Okay, initialization may be long (especially for GUI layouts), but the operations shouldn't be that complex (in length; doing an orbit propagation with a J2 geopotential model may be complex numerically, but as I recall it can fit into less than two pages of text -- in FORTRAN 77) -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/