module interview questions
Top module frequently asked interview questions
I have a long-running Python server and would like to be able to upgrade a service without restarting the server. What's the best way do do this?
if foo.py has changed:
unimport foo <-- How do I do this?
import foo
myfoo = foo.Foo()
Source: (StackOverflow)
I want to detect whether module has changed. Now, using inotify is simple, you just need to know the directory you want to get notifications from.
How do I retrieve a module's path in python?
Source: (StackOverflow)
I came from Java and now I am working more with ruby. One language feature I am not familiar with is the module
. I am wondering what exactly is a module and when do you use one? Also why use a module over a class?
Source: (StackOverflow)
I am using Ruby on Rails 3 and I would like to move some custom and shared code in a module.
- What syntax should I use to write the module code?
- In which folder of my application I have to place the module file?
- How I have to include that module in one or more controller classes?
- What other action, if any, do I have to use the custom module anywhere in my application?
- How can I call methods in the module from my application?
Thanks in advance.
Source: (StackOverflow)
Just getting my head around Ruby metaprogramming... the mixin/modules always manage to confuse me.
- include : mixes in specified module methods as instance methods in the target class
- extend : mixes in specified module methods as class methods in the target class
So is the major difference just this or is a bigger dragon lurking?
e.g.
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"
Source: (StackOverflow)
I have a file called tester.py
, located on /project
.
/project
has a subdirectory called lib
, with a file called BoxTime.py
:
/project/tester.py
/project/lib/BoxTime.py
I want to import BoxTime
from tester
. I have tried this:
import lib.BoxTime
Which resulted:
Traceback (most recent call last):
File "./tester.py", line 3, in <module>
import lib.BoxTime
ImportError: No module named lib.BoxTime
Any ideas how to import BoxTime
from the subdirectory?
EDIT
The __init__.py
was the problem, but don't forget to refer to BoxTime
as lib.BoxTime
, or use:
import lib.BoxTime as BT
...
BT.bt_function()
Source: (StackOverflow)
What do I pass as the first parameter "object
" to the function setattr(object, name, value)
, to set variables on the current module?
For example:
setattr(object, "SOME_CONSTANT", 42);
giving the same effect as:
SOME_CONSTANT = 42
within the module containing these lines (with the correct object
).
I'm generate several values at the module level dynamically, and as I can't define __getattr__
at the module level, this is my fallback.
Source: (StackOverflow)
According to http://www.faqs.org/docs/diveintopython/fileinfo_private.html:
Like most languages, Python has the
concept of private elements:
- Private
functions, which can't be called from
outside their module
However, if I define two files:
#a.py
__num=1
and:
#b.py
import a
print a.__num
when i run b.py
it prints out 1
without giving any exception. Is diveintopython wrong, or did I misunderstand something? And is there some way to do define a module's function as private?
Source: (StackOverflow)
I couldn't really find this in Rails documentation but it seems like 'mattr_accessor' is the Module corollary for 'attr_accessor' (getter & setter) in a normal Ruby class.
Eg. in a class
class User
attr_accessor :name
def set_fullname
@name = "#{self.first_name} #{self.last_name}"
end
end
Eg. in a module
module Authentication
mattr_accessor :current_user
def login
@current_user = session[:user_id] || nil
end
end
This helper method is provided by ActiveSupport.
Source: (StackOverflow)
Is there a way to set up a global variable inside of a module? When I tried to do it the most obvious way as appears below, the Python interpreter said the variable __DBNAME__
did not exist.
...
__DBNAME__ = None
def initDB(name):
if not __DBNAME__:
__DBNAME__ = name
else:
raise RuntimeError("Database name has already been set.")
...
And after importing the module in a different file
...
import mymodule
mymodule.initDB('mydb.sqlite')
...
And the traceback was: UnboundLocalError: local variable '__DBNAME__' referenced before assignment
Any ideas? I'm trying to set up a singleton by using a module, as per this fellow's recommendation.
Source: (StackOverflow)
I just discovered this old C++0x draft about modules in C++0x.
The idea was to get out of the current .h/.cpp system by writing only .cpp files which would then generate module files during compilation, which would then in turn be used by the other .cpp files.
This looks like a really great feature.
But my question is: why did they remove it from C++0x? Was it because of too many technical difficulties? Lack of time? And do you think they will consider working on it for an ulterior version of C++?
Source: (StackOverflow)
In Ruby, since you can include multiple mixins but only extend one class, it seems like mixins would be preferred over inheritance.
My question: if you're writing code which must be extended/included to be useful, why would you ever make it a class? Or put another way, why wouldn't you always make it a module?
I can only think of one reason why you'd want a class, and that is if you need to instantiate the class. In the case of ActiveRecord::Base, however, you never instantiate it directly. So shouldn't it have been a module instead?
Source: (StackOverflow)
This question already has an answer here:
I'm wondering if there's any difference between the code fragment
from urllib import request
and the fragment
import urllib.request
or if they are interchangeable. If they are interchangeable, which is the "standard"/"preferred" syntax (if there is one)?
Thanks!
Source: (StackOverflow)
I'm starting to learn python and loving it. I work on a Mac mainly as well as Linux. I'm finding that on Linux (Ubuntu 9.04 mostly) when I install a python module using apt-get it works fine. I can import it with no trouble.
On the Mac, I'm used to using Macports to install all the Unixy stuff. However, I'm finding that most of the python modules I install with it are not being seen by python. I've spent some time playing around with PATH settings and using python_select . Nothing has really worked and at this point I'm not really understanding, instead I'm just poking around.
I get the impression that Macports isn't universally loved for managing python modules. I'd like to start fresh using a more "accepted" (if that's the right word) approach.
So, I was wondering, what is the method that Mac python developers use to manage their modules?
Bonus questions:
Do you use Apple's python, or some other version?
Do you compile everything from source or is there a package manger that works well (Fink?).
Any tips or suggestions here are greatly appreciated. Thanks for your time. :)
Source: (StackOverflow)
Background:
I have a module which declares a number of instance methods
module UsefulThings
def get_file; ...
def delete_file; ...
def format_text(x); ...
end
And I want to call some of these methods from within a class. How you normally do this in ruby is like this:
class UsefulWorker
include UsefulThings
def do_work
format_text("abc")
...
end
end
Problem
include UsefulThings
brings in all of the methods from UsefulThings
. In this case I only want format_text
and explicitly do not want get_file
and delete_file
.
I can see several possible solutions to this:
- Somehow invoke the method directly on the module without including it anywhere
- I don't know how/if this can be done. (Hence this question)
- Somehow include
Usefulthings
and only bring in some of it's methods
- I also don't know how/if this can be done
- Create a proxy class, include
UsefulThings
in that, then delegate format_text
to that proxy instance
- This would work, but anonymous proxy classes are a hack. Yuck.
- Split up the module into 2 or more smaller modules
- This would also work, and is probably the best solution I can think of, but I'd prefer to avoid it as I'd end up with a proliferation of dozens and dozens of modules - managing this would be burdensome
Why are there lots of unrelated functions in a single module? It's ApplicationHelper
from a rails app, which our team has de-facto decided on as the dumping ground for anything not specific enough to belong anywhere else. Mostly standalone utility methods that get used everywhere. I could break it up into seperate helpers, but there'd be 30 of them, all with 1 method each... this seems unproductive
Source: (StackOverflow)