include statement

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • joakim.hove@gmail.com

    #1

    include statement

    Hello,

    is it possible in python to include another python source file into the
    current namespace, i.e.completely analogous to the #include statement
    in C.

    Regards Joakim

  • Ravi Teja

    #2
    Re: include statement

    is it possible in python to include another python source file into the
    current namespace, i.e.completely analogous to the #include statement
    in C.
    By using a pre-processor, like C does.


    If you are new to Python, keep in mind that this is for special cases
    only. Since Python has a module system, there isn't a need for #include
    as in C.

    Comment

    • Gary Herron

      #3
      Re: include statement

      joakim.hove@gma il.com wrote:
      Hello,
      >
      is it possible in python to include another python source file into the
      current namespace, i.e.completely analogous to the #include statement
      in C.
      >
      Regards Joakim
      >
      >
      No (thank heavens)! We left #include and other such primitive
      functionality back with the dinosaurs (C and its relatives) when we
      moved into the world of tje modern sophisticated programming language
      Python. Tell us why you are contemplating such a thing, and someone
      here will help you implement it the "Pythonic" way.

      Gary Herron

      Comment

      • MonkeeSage

        #4
        Re: include statement

        joakim.hove@gma il.com wrote:
        Hello,
        >
        is it possible in python to include another python source file into the
        current namespace, i.e.completely analogous to the #include statement
        in C.
        >
        Regards Joakim
        from blah import * # where blah is a blah.py file in sys.path

        Also see:





        Regards,
        Jordan

        Comment

        • joakim.hove@gmail.com

          #5
          Re: include statement

          Thanks to all who took time to answer!

          is it possible in python to include another python source file into the
          current namespace, i.e.completely analogous to the #include statement
          in C.
          [...]
          Tell us why you are contemplating such a thing, and someone
          here will help you implement it the "Pythonic" way.
          My application has a configuration file where lots of variables are
          set. (The configuration file is python source, so there is no
          home-brewed parsing involved.) The configuration file is starting to
          get quite large and unwieldy, so for this reason I would like to split
          it in several files.

          I know I could do:
          from configA import *
          from configB import *

          But I felt that the import statemant was 'more' than I wanted. Maybe I
          am just pedantic.

          Regards

          Joakim

          Comment

          • Peter Otten

            #6
            Re: include statement

            joakim.hove@gma il.com wrote:
            Thanks to all who took time to answer!
            >
            >
            is it possible in python to include another python source file into the
            current namespace, i.e.completely analogous to the #include statement
            in C.
            >
            [...]
            >
            >Tell us why you are contemplating such a thing, and someone
            >here will help you implement it the "Pythonic" way.
            >
            My application has a configuration file where lots of variables are
            set. (The configuration file is python source, so there is no
            home-brewed parsing involved.) The configuration file is starting to
            get quite large and unwieldy, so for this reason I would like to split
            it in several files.
            >
            I know I could do:
            from configA import *
            from configB import *
            >
            But I felt that the import statemant was 'more' than I wanted. Maybe I
            am just pedantic.
            Maybe you like execfile() which would allow you to collect the configuration
            files without the need for them to be reachable through the import
            mechanism.

            pattern = os.path.expandu ser("~/.herron/config*.py")

            for fn in glob.glob(patte rn):
            execfile(fn)

            # objects in the config*.py files now
            # share one namespace.

            Peter

            Comment

            • Bruno Desthuilliers

              #7
              Re: include statement

              joakim.hove@gma il.com wrote:
              Thanks to all who took time to answer!
              >
              >
              >>is it possible in python to include another python source file into the
              >>current namespace, i.e.completely analogous to the #include statement
              >>in C.
              >
              [...]
              >
              >Tell us why you are contemplating such a thing, and someone
              >here will help you implement it the "Pythonic" way.
              >
              My application has a configuration file where lots of variables are
              set. (The configuration file is python source, so there is no
              home-brewed parsing involved.) The configuration file is starting to
              get quite large and unwieldy, so for this reason I would like to split
              it in several files.
              >
              I know I could do:
              from configA import *
              from configB import *
              >
              But I felt that the import statemant was 'more' than I wanted. Maybe I
              am just pedantic.
              Maybe... "import" is the very appropriate statement for what you want
              here IMVHO. I'd just put the config<X>.py files into a 'config'
              directory, add an __init__.py, and put the 'from configX import *'
              there. Then in the app code, a simple 'import config', which allow acces
              to config vars via 'config.varname ' (clean namespaces really improve
              maintainability ).

              My 2 cents
              Regards
              >
              Joakim
              >

              --
              bruno desthuilliers
              python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
              p in 'onurb@xiludom. gro'.split('@')])"

              Comment

              • Larry Bates

                #8
                Re: include statement

                joakim.hove@gma il.com wrote:
                Thanks to all who took time to answer!
                >
                >
                >>is it possible in python to include another python source file into the
                >>current namespace, i.e.completely analogous to the #include statement
                >>in C.
                >
                [...]
                >
                >Tell us why you are contemplating such a thing, and someone
                >here will help you implement it the "Pythonic" way.
                >
                My application has a configuration file where lots of variables are
                set. (The configuration file is python source, so there is no
                home-brewed parsing involved.) The configuration file is starting to
                get quite large and unwieldy, so for this reason I would like to split
                it in several files.
                >
                I know I could do:
                from configA import *
                from configB import *
                >
                But I felt that the import statemant was 'more' than I wanted. Maybe I
                am just pedantic.
                >
                Regards
                >
                Joakim
                >
                I might also suggest that you consider using ConfigParser module to store
                your "variables" . If you are worried about performance, I can tell you that
                I use it to feed thousands of lines of configuration info into one of my
                applications (this app has 5 of these files) and ConfigParser handles them
                so quickly that performance is NOT a problem. The format of the file is
                easily understandable by nearly every user which means I don't have to
                worry with someone not understanding Python's syntax. If someone gets
                something wrong in a file that gets included, it is harder to take a sane
                default or handle the error than with ConfigParser. Just a suggestion that
                I hope helps.

                -Larry Bates

                or

                Comment

                • Gabriel Genellina

                  #9
                  Re: include statement

                  At Wednesday 20/9/2006 03:50, joakim.hove@gma il.com wrote:
                  >My application has a configuration file where lots of variables are
                  >set. (The configuration file is python source, so there is no
                  >home-brewed parsing involved.) The configuration file is starting to
                  >get quite large and unwieldy, so for this reason I would like to split
                  >it in several files.
                  >
                  >I know I could do:
                  >from configA import *
                  >from configB import *
                  >
                  >But I felt that the import statemant was 'more' than I wanted. Maybe I
                  >am just pedantic.
                  You can limit the range of "from...imp ort *" declaring a __all__
                  variable in the imported module; this way you import exactly what is
                  needed (and the rest is kept as "private")



                  Gabriel Genellina
                  Softlab SRL





                  _______________ _______________ _______________ _____
                  Preguntá. Respondé. Descubrí.
                  Todo lo que querías saber, y lo que ni imaginabas,
                  está en Yahoo! Respuestas (Beta).
                  ¡Probalo ya!


                  Comment

                  Working...