|
Technical Interview Questions
C++ Interview Questions
Php Interview Questions
Xml
Interview Questions
C Interview Questions
.........More
Soft Skills
Communication Skills
Leadership Skills
.........More
|
|
Python Interview Questions and Answers
How can I sort one list by values from another list?
Merge them into a single list of tuples, sort the
resulting list, and then pick out the element you want.
>>> list1 = ["what", "I'm", "sorting", "by"]
>>> list2 = ["something", "else", "to", "sort"]
>>> pairs = zip(list1, list2)
>>> pairs
[('what', 'something'), ("I'm", 'else'), ('sorting',
'to'), ('by', 'sort')] >>> pairs.sort()
>>> result = [ x[1] for x in pairs ]
>>> result
['else', 'sort', 'to', 'something']
An alternative for the last step is:
result = []
for p in pairs: result.append(p[1])
If you find this more legible, you might prefer to use
this instead of the final list comprehension. However,
it is almost twice as slow for long lists. Why? First,
the append() operation has to reallocate memory, and
while it uses some tricks to avoid doing that each time,
it still has to do it occasionally, and that costs quite
a bit. Second, the expression "result.append" requires
an extra attribute lookup, and third, there's a speed
reduction from having to make all those function calls.
What is a class?
A class is the particular object type created by
executing a class statement. Class objects are used as
templates to create instance objects, which embody both
the data (attributes) and code (methods) specific to a
datatype.
A class can be based on one or more other classes,
called its base class(es). It then inherits the
attributes and methods of its base classes. This allows
an object model to be successively refined by
inheritance. You might have a generic Mailbox class that
provides basic accessor methods for a mailbox, and
subclasses such as MboxMailbox, MaildirMailbox,
OutlookMailbox that handle various specific mailbox
formats.
What is a method?
A method is a function on some object x that you
normally call as x.name(arguments...). Methods are
defined as functions inside the class definition:
class C:
def meth (self, arg):
return arg*2 + self.attribute
What is self?
Self is merely a conventional name for the first
argument of a method. A method defined as meth(self, a,
b, c) should be called as x.meth(a, b, c) for some
instance x of the class in which the definition occurs;
the called method will think it is called as meth(x, a,
b, c).
How do I check if an object is an instance of a given
class or of a subclass of it?
Use the built-in function isinstance(obj, cls). You can
check if an object is an instance of any of a number of
classes by providing a tuple instead of a single class,
e.g. isinstance(obj, (class1, class2, ...)), and can
also check whether an object is one of Python's built-in
types, e.g. isinstance(obj, str) or isinstance(obj,
(int, long, float, complex)).
Note that most programs do not use isinstance() on
user-defined classes very often. If you are developing
the classes yourself, a more proper object-oriented
style is to define methods on the classes that
encapsulate a particular behaviour, instead of checking
the object's class and doing a different thing based on
what class it is. For example, if you have a function
that does something:
def search (obj):
if isinstance(obj, Mailbox):
# ... code to search a mailbox
elif isinstance(obj, Document):
# ... code to search a document
elif ...
A better approach is to define a search() method on all
the classes and just call it:
class Mailbox:
def search(self):
# ... code to search a mailbox
class Document:
def search(self):
# ... code to search a document
obj.search()
What is delegation?
Delegation is an object oriented technique (also called
a design pattern). Let's say you have an object x and
want to change the behavior of just one of its methods.
You can create a new class that provides a new
implementation of the method you're interested in
changing and delegates all other methods to the
corresponding method of x.
Python programmers can easily implement delegation. For
example, the following class implements a class that
behaves like a file but converts all written data to
uppercase:
class UpperOut:
def __init__(self, outfile):
self.__outfile = outfile
def write(self, s):
self.__outfile.write(s.upper())
def __getattr__(self, name):
return getattr(self.__outfile, name)
Here the UpperOut class redefines the write() method to
convert the argument string to uppercase before calling
the underlying self.__outfile.write() method. All other
methods are delegated to the underlying self.__outfile
object. The delegation is accomplished via the __getattr__
method; consult the language reference for more
information about controlling attribute access.
Note that for more general cases delegation can get
trickier. When attributes must be set as well as
retrieved, the class must define a __settattr__ method
too, and it must do so carefully. The basic
implementation of __setattr__ is roughly equivalent to
the following:
class X:
...
def __setattr__(self, name, value):
self.__dict__[name] = value
...
Most __setattr__ implementations must modify self.__dict__
to store local state for self without causing an
infinite recursion.
Page Numbers : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Have a Question ?
post your questions here. It
will be answered as soon as possible.
Check
HTML Interview
Questions for more HTML Interview Questions with Answers
Check
Job Interview Questions
for more Interview Questions with Answers
|