[perl-python] 20050124 classes & objects

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Xah Lee

    #1

    [perl-python] 20050124 classes & objects

    © # -*- coding: utf-8 -*-
    © # Python
    ©
    © # in Python, one can define a boxed set
    © # of data and functions, which are
    © # traditionally known as "class".
    ©
    © # in the following, we define a set of data
    © # and functions as a class, and name it xxx
    © class xxx:
    © "a class extempore! (^_^)"
    © i=1 # i'm a piece of data
    © def okaydokey(self) : return "okaydokey"
    © def square(self,a): return a**a
    ©
    © # in the following,
    © # we create an object, of the class xxx.
    © # also known as "instantiat e a class".
    © x = xxx()
    ©
    © # data or functions defined in a class
    © # are called the class's attributes or
    © # methods.
    © # to use them, append a dot and
    © # their name after the object's name.
    © print 'value of attribute i is:', x.i
    © print "3 squared is:", x.square(3)
    © print "okaydokey called:", x.okaydokey()
    ©
    © # in the definition of function inside a
    © # class, the first parameter "self" is
    © # necessary. (you'll know why when you need to)
    ©
    © # the first line in the class definition
    © # is the class's documentation. It can
    © # be accessed thru the __doc__
    © # attribute.
    © print "xxx's doc string is:", x.__doc__
    ©
    © # one can change data inside the class
    © x.i = 400
    ©
    © # one can also add new data to the class
    © x.j=4
    © print x.j
    ©
    © # or even override a method
    © x.square = 333
    © # (the following line will no longer work)
    © # print "3 squared is:", x.square(3)
    ©
    © # in Python, one must be careful not to
    © # overwrite data or methods defined in a
    © # class.

    ----------------------

    for a obfuscated treatment with a few
    extra info, see
    The official home of the Python Programming Language


    in Python terminal, type help() then
    topic CLASSES to read about existing
    datatypes as classes, and classes in
    Python

    try to write a class with one data of
    integer and two functions, one
    increases it by 1, one decreases it by
    1. note: inside a class definition,
    to refer to data inside itself use
    self. e.g. self.i

    ------------------------------------------
    Perl does not support classes or
    objects in the so-called "Object
    Oriented" programing. However, a
    complete set of emulations of OO
    style of programing have been done,
    resulting in modules and books and
    many documentations and tutorials.

    here is a quote from
    perldoc perlobj

    First you need to understand what
    references are in Perl. See perlref for
    that. Second, if you still find the
    following reference work too
    complicated, a tutorial on
    object-oriented programming in Perl can
    be found in perltoot and perltooc.

    it goes on and sayz:

    If you're still with us, then here are
    three very simple definitions that you
    should find reassuring.

    1. An object is simply a reference
    that happens to know which class
    it belongs to.

    2. A class is simply a package that
    happens to provide methods to deal
    with object references.

    3. A method is simply a subroutine
    that expects an object reference
    (or a package name, for class
    methods) as the first argument.

    Good luck.


    Note: this post is from the Perl-Python a-day mailing list at
    Latest news coverage, email, free stock quotes, live scores and video are just the beginning. Discover more every day at Yahoo!

    to subscribe, send an email to perl-python-subscribe @ yahoogroups.com
    if you are reading it on a web page, program examples may not run
    because html conversion often breaks the code.
    Xah
    xah@xahlee.org


  • Chris Mattern

    #2
    Re: [perl-python] 20050124 classes & objects

    Xah Lee wrote:
    [color=blue]
    > Perl does not support classes or
    > objects in the so-called "Object
    > Oriented" programing.[/color]

    Boy, the ignorance never stops, does it?
    [color=blue]
    > However, a
    > complete set of emulations of OO
    > style of programing have been done,
    > resulting in modules and books and
    > many documentations and tutorials.
    >[/color]

    It doesn't have OO, but it emulates in software!
    Better go with python, which has hardware OO. :-)
    --
    Christopher Mattern

    "Which one you figure tracked us?"
    "The ugly one, sir."
    "...Could you be more specific?"

    Comment

    • Gian Mario Tagliaretti

      #3
      Re: [perl-python] 20050124 classes & objects

      Chris Mattern wrote:
      [color=blue]
      >
      > It doesn't have OO, but it emulates in software!
      > Better go with python, which has hardware OO. :-)[/color]

      Chris don't feed the troll

      Comment

      Working...