RE: Arrays, Got Me Confused
- From: "Robert Rawlins - Think Blue" <robert.rawlins@xxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 13 Apr 2007 14:14:06 +0100
Thanks for that Tim and Steve, greatly appreciated.
I know that the class method is just a wrapper and it seems a little silly,
but it is partly for the exercise. I'm pretty well savvy with the OOP stuff
but its something my business partner is yet to venture into, so by working
like this it helps him understand the concepts. I also feel more at home if
i can wrap this stuff up in nice user friendly methods that I can access
universally throughout the application.
I will have plenty of other class's and methods throughout the application
that will call upon this firewall stuff, and being able to universally
reference it as Firewall.addDevice() makes things more logical in my mind, I
find trying to go back to a more procedural method pretty tricky now.
Thanks again guys,
Rob
-----Original Message-----
From: python-list-bounces+robert.rawlins=thinkbluemedia.co.uk@xxxxxxxxxx
[mailto:python-list-bounces+robert.rawlins=thinkbluemedia.co.uk@xxxxxxxxxx]
On Behalf Of Tim Golden
Sent: 13 April 2007 14:03
Cc: python-list@xxxxxxxxxx
Subject: Re: Arrays, Got Me Confused
Robert Rawlins - Think Blue wrote:
Hello Guys,this
Wider fragments of code don't really exists at this moment in time :-D
is just a bit of a 'tester' class for me to get used to the methods.class
Basically I'm trying to create a class that contains an array of MAC
address, these look something like this 'FD:E4:55:00:FG:A9. I want the
to have the following methods for easy manipulation of the array.
addDevice(Address) - Pass in the MAC address and have it add it to the
array.
removeDevice(Address) - Finds a device with that address in the array and
removes it.
isFirewalled(Address) - looks for that address in the array and returns
true/false dependant on whether it finds it.
Clear() - empty the array of all its contents.
OK, it's easy enough to do this, but you might find
that you don't actually need to do too much of it
yourself. Python has two central datastructures
built in: lists and dictionaries. There are loads
of tutorials around (and if you join the python-tutor
list, the welcome message points you towards several)
so I won't go into the details, but it looks like
you want a dict here.
You could wrap it in a class if you wanted, but
the great thing about Python is that you don't
have to. *Very* rough example code:
<code>
macs = {} # create an empty dict
incoming_mac = 'FD:E4:55:00:FG:A9'
macs[incoming_mac] = True
example_mac = 'a:b:c:d'
if example_mac in macs:
mac_is_firewalled = macs[example_mac]
</code>
If you really wanted to go with a class (for the exercise
or because of wider requirements) you could do something
like this:
<code>
class Firewalled:
def __init__ (self):
self.macs = {}
def addDevice (address):
self.macs[address] = True
def removeDevice (address):
del self.macs[address]
def isFirewalled (address):
return address in self.macs
# or return self.macs.get (address, False)
</code>
but as you can see, in this form you're just wrapping
Python with Python.
Sorry for the sloppy code so far, I'm really new to Python so it's a steepthe
learning curve for me, I'm by no means a programming numpty and allot of
principles are the same, but the languages I'm used to are more robust andand
vague so I don't have to define what type of data i'm storing the array
things.
Ummm... in Python you don't have to define what type of
data you're storing. Welcome to the language in any case:
you'll find that people around here are generally quite
friendly but if you want, you might try the tutor list
where people are very used to dealing with newcomers:
http://mail.python.org/mailman/listinfo/tutor
TJG
--
http://mail.python.org/mailman/listinfo/python-list
.
- Prev by Date: Re: where to report bug/get help for wxpython
- Next by Date: Re: Getting Stack Trace on segfault
- Previous by thread: RE: Arrays, Got Me Confused
- Next by thread: Function arguments [was: help]
- Index(es):
Relevant Pages
|