2008/12/25 Alan Gauld <alan.ga...@btinternet.com>:

> You could also make this a method of a subclass of string if you prefer:
>
> class MyString(str):
>  def beginswith(self, prefixes):
>       for prefix in prefixes:
>            if self.startswith(prefix):
>               return prefix
>
> Now you can create instances of MyString that will have all
> the regular vstring methiods plus the new beginswith():
>
> s = MyString("Welcome to my world")
> if s.beginswith(["Welcome", "Hello","Howdy"]):
>   print "It's friendly"
>
> Which looks more consistent.

It's an appealing idea but the extra step of wrapping strings in
MyString kind of takes the shine off of it. For example something like
this is awkward:
for d in os.listdir():
  d = MyString(d)
  if d.beginswith(...):

Some languages allow you to extend a built-in class, this technique
works better there.

Kent
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to