Civ4 Python/import: Difference between revisions

From Civilization Modding Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
Line 1: Line 1:
'''Import guide.'''
import allow you to add python files to you mod.
import allow you to add python files to you mod.


Line 39: Line 41:
''foo()''<br />
''foo()''<br />
(It is good idea to have functions with understandable name)
(It is good idea to have functions with understandable name)
== '''Import folders''' ==
* Create folder (mymodule)
* Create __init__.py (leave it blank)
* Create file: myscript.py
'''Usage'''<br />
from mymodule import myscript <br />
or<br />
from mymodule.myscript import *<br />


=='''Import rules:'''==
=='''Import rules:'''==
Line 44: Line 58:


== References ==
== References ==
[http://forums.civfanatics.com/showpost.php?p=2495872|Lesson 09 - 'Borrowing' other people's stuff (with modules)]
[http://forums.civfanatics.com/showpost.php?p=2495872 Lesson 09 - 'Borrowing' other people's stuff (with modules)]

Latest revision as of 12:55, 17 July 2010

Import guide.

import allow you to add python files to you mod.

Example:

How to add popup to the event:

Bad way:
  • Insert popup code to CvEventManager.py in event.

Result:
Big files is hard to read and edit. It is not easy to customize this code and merge to others mod.

Good way:
  • Create file mymod.py
  • Create function that runs popup (for example: run_popup)
  • edit CvEventManager.py:
    • add string after imports: import mymod.py
    • and string in event: mymod.run_popup(*args)

Result:
It is easy to add / remove this function from mod (just uncomment lines).
It is easy to share this function.
It is easy to call this function in other place. (if yon need it on some event).

import executes script in file (if you have only functions and classes loads them to memory.)

import sintax:

  • import mymod

to access functions use:
mymod.foo()

  • from mymod import *

to access functions use:
foo()

  • from mymod import foo, goo

to access functions use:
foo() or goo()
(some IDE has autocomplite feature and in this way shows only foo and goo.)

  • from mymod import this_is_long_name_function as foo

to access functions use:
foo()
(It is good idea to have functions with understandable name)

Import folders

  • Create folder (mymodule)
  • Create __init__.py (leave it blank)
  • Create file: myscript.py

Usage
from mymodule import myscript
or
from mymodule.myscript import *


Import rules:

Use imports at the file beginning!

References

Lesson 09 - 'Borrowing' other people's stuff (with modules)