SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
An introduction to Ruby's object
             model

    Riviera.rb – 08/01/2013
           Nicolas Bondoux
Overview
●   Introduction to module and classes
●   Singleton class; case of meta-classes
●   Tools for meta-programming
●   Using modules for extending objects: mixins
A simple class
class LinkedElement
  #constructor
                                          ●   A class definition
  def initialize(content,link)                  contains
    @content = content
    @link = link
  end
                                                  –   Instance methods
  # setter                                        –   Constants
  def content=(content)
    @content = content
  end
                                                  –   Class variables
  #getter
                                          ●   Instance variables are
  def content
    return @content
                                                prefixed by @; they
  end                                           are manipulated
  # automatic generation setter/getter:         through instance
  attr_accessor :link
end  
                                                methods
Class instances
irb(main):192:0> a = LinkedElement.new("a", nil)
=> #<LinkedElement:0x00000001b63b58 @content="a", @link=nil>

irb(main):193:0> b = LinkedElement.new("b",a)
=> #<LinkedElement:0x00000001b5daf0 @content="b", 
@link=#<LinkedElement:0x00000001b63b58 @content="a", @link=nil>>

irb(main):194:0> b.link()
=> #<LinkedElement:0x00000001b63b58 @content="a", @link=nil>

irb(main):195:0> b.@link
SyntaxError: (irb):195: syntax error, unexpected tIVAR
    from /usr/bin/irb:12:in `<main>'

irb(main):196:0> b.content
=> "b"

b.instance_variables
=> [:@content, :@link]

●   A class be instantiated using #new (class method)
●   Instance variables live within the instance, but are not
    directly accessible → need of getter and setters
Objects' equality
●   Objects comparison:
        –   == → true if the content of two objects
        –   .eql? → true if == and class of the two objects;
                 ● Used alongside with .hash for hash maps
        –   .equal? : true if the same instance on both sides
●   == and .eql? Must be provided by class implementation
Classes inheritance
class Toto                         irb(main):027:0* Toto.new.myNameIs
  def myNameIs                     => "My Name Is Toto."
    return "My Name Is #{name}."   irb(main):028:0> Titi.new.myNameIs
  end                              => "My Name Is Titi."
  def name
    "Toto"                         irb(main):030:0* t = Titi.new
  end                              => #<Titi:0x00000001d376c8>
end                                irb(main):035:0> t.class
                                   => Titi
class Titi < Toto                  irb(main):036:0> 
  def name                         t.class.superclass
    "Titi"                         => Toto
  end                              irb(main):037:0> t.is_a? Titi
end                                => true
                                   irb(main):038:0> t.is_a? Toto
                                   => true
                                   irb(main):039:0> Toto === t
                                   => true
                                   irb(main):040:0> Toto.superclass
                                   => Object
Self
●   “self” keyword represents the instance in which the code is
    executed
         –   inside a method definition , the instance on which
               method is defined
         –   Inside class/module definition: the class/module being
               defined
                         class TestSelf
                           puts self
                           def f
                             return self
                           end
                         end
                         # display TestSelf

                         t = TestSelf.new
                         t.f.equal? t
                         => true
Class methods and variables
class TestClassMethod
  #class variable
  @@a=0
  #class method
  def self.counter
    @@a=0
  end
  #instance method
  def putsSelf
    puts self
    @@a+=1
  end
end

●   Class are objects: class methods are their instance methods!
●   Class variables are prefixed with @@
●   Ruby magic: class variables from parent classes are
      accessible to child classes
●   Class variables are accessible anywhere in class definition
Classes methods: example
class LinkedElement
  class LinkedElementEnd
  end
  #class variable
  @@end = LinkedElementEnd.new

  #example of constant
  End = @@end
  #class method

  def self.end
    @@end
  end
end

irb(main):015:0* LinkedElement.end().equal? LinkedElement::End
=> true
irb(main):016:0> LinkedElement.class_variables
=> [:@@end]

irb(main):069:0>  a= LinkedElement.new("a", LinkedElement.end)
=> #<LinkedElement:0x00000001931df8 @content="a", 
@link=#<LinkedElement::LinkedElementEnd:0x0000000152e8c8>>

irb(main):070:0> b=LinkedElement.new("b",a)
=> #<LinkedElement:0x0000000192a8c8 @content="b", 
@link=#<LinkedElement:0x00000001931df8 @content="a", 
@link=#<LinkedElement::LinkedElementEnd:0x0000000152e8c8>>>
Adding methods to a class
●   Class definition can be extended anytime
●   Let's add a size method to our linked list:
      class LinkedElement
        def size
          @link.size + 1
        end
        class LinkedElementEnd
          def size
           0
          end
        end
      end

      irb(main):081:0> a.size
      => 1
      irb(main):082:0> b.size
      => 2
Structs
●   Struct.new allow to dynamically create Classes, with getter
      and setters
      irb(main):008:0> MyClass = Struct.new(:a,:b, :c)
      => MyClass
      irb(main):009:0> m = MyClass.new(1,10)
      => m = MyClass.new(1,10)

      irb(main):011:0> m.a=2
      => 2

      irb(main):013:0> m.to_a
      => [2, 10, nil]


●   Instance of struct have, among others .eql?, .equal?, .hash
      methods defined !
●   Very useful to quickly define records, keys …
●   Structs can then be inherited from/extended like any classes
Modules
●   Module is a parent type of Class;
         –   A module is an instance of Module
●   Modules are like classes, except that
         –   They cannot be instantiated
         –   No inheritance: they cannot have parent or child
●   Still, they are objects:
         –   They have instance variables, (class) methods
●   And they also have
         –   class variables
         –   and instance methods → used for the mixins
●   Modules are useful for namespaces
Modules (2)
module M1
  #constant:
  C=1

  def self.f
    "f1; self is #{self}"
  end
end

module M2
  def self.f
    "f2; self is #{self}"
  end
end

irb(main):026:0* M1.f
=> "f1; self is M1"
irb(main):028:0* M2.f
=> "f2; self is M2"
irb(main):033:0> M1::C
=> 1
A very simplified diagram


                  Object




           MyParentClass   Module   MyModule


Instance         MyClass   Class



   .class
   .superclass
Extending instances:
●   We have already seen that class methods of a class A are
    instance methods specific to the object A
           –    It is possible to add methods to instances!
        a="5"

        def a.mult(x)
           "#{self.to_i*x}"
        znd

        irb(main):096:0* a.mult(10)
        => "50"


●    Where is stored “mult” Method ? In the Singleton class !
    irb(main):103:0> a.singleton_class
    => #<Class:#<String:0x000000018ec7a8>>
    irb(main):104:0> a.singleton_class.ancestors
    => [String, Comparable, Object, Kernel, BasicObject]
    irb(main):105:0> a.singleton_class.superclass
    => String
What are singleton classes ?
●   One instance has its own singleton
●   Those are anonymous and invisible classes, inserted at the
    bottom of the class hierarchy
●   They are used to hold methods that are specific to an instance
                                  Object




                 class            String



         a                         (a)
                singleton_class
Singleton classes of classes: meta-
                   classes
●   Meta-classes: the singleton classes of methods
         –   This is where class methods are stored!
●   Meta-classes magic:
         –   when looking for a class methods ruby search in the
              meta-classes of all the inheritance chain!
         –   This is because meta-classes inheritance scheme is
               parallel to class inheritance scheme
Meta-classes: a diagram


                   Object         Class




             MyParentClass     (MyParentClass)


                  MyClass         (MyClass)


Instance          (Instance)

       .singleton_class
       .superclass
Extending the singleton classes
class Toto
  #instance method of Toto
                                                 # Singleton class can also be 
  def f
                                                 accessed explicitly
  end
                                                 class << Toto
                                                   def h
  #class method of Toto
                                                     return self
  def self.g
                                                   end
  end
                                                 end
end

#class method of Toto
                                                 class Toto
def Toto.g
                                                   class << self
end
                                                     def i1
                                                     end
# ­> def x.g  .... ­> add an instance method to 
                                                     
the singleton class of x !
                                                     def i2
                                                     end
                                                   end
                                                 end
                                                 # i1 and i2 are class methods of 
                                                 Toto !!!
instance_eval/instance_exec
●   instance_eval allow to execute code in the context of an
       instance;
         –   Ruby magic: self represents the instance, but methods
              are added to the singleton class!
     class TestInstanceEval
       def initialize
         @a=5
       end
     end
     b=5

     irb(main):189:0> t.instance_eval "@a"
     => 5
     irb(main):190:0* t.instance_eval "def f; puts @a+#{b};end"
     => nil
     irb(main):191:0> t.f
     10
Mixins
●   Mixins are a way to add properties to an object
●   They are modules referenced by classes
●   Instance methods of the module becomes available to
    instances of the class
●   Include: the module becomes an included module of the Class
         –   the instance methods of an module become instance
               methods of the Class → used to extend classes
●   Extend: the module becomes an included module of the
    singleton of the class → allow to extends objects, add class
    methods to classes ...
Mixins: examples
module AppendModule
  def append(x)
    return LinkedElement.new(x,self)
  end
end

#add append method to LinkedElement and LinkedElementEnd

class LinkedElement
  #add append as instance method of LinkedElement
  include AppendModule
  class LinkedElementEnd
    include AppendModule
  end
end

irb(main):268:0> l = LinkedElement::End.append("z").append("y").append("x")
=> #<LinkedElement:0x00000001d18138 @content="x", 
@link=#<LinkedElement:0x00000001d18188 @content="y", 
@link=#<LinkedElement:0x00000001d181d8 @content="z", 
@link=#<LinkedElement::LinkedElementEnd:0x00000001f04f78>>>>

irb(main):269:0> l.size
=> 3

irb(main):270:0> LinkedElement.included_modules
=> [AppendModule, Kernel]
Any questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysUnit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysDevaKumari Vijay
 
First fare 2011 frc-java-introduction
First fare 2011 frc-java-introductionFirst fare 2011 frc-java-introduction
First fare 2011 frc-java-introductionOregon FIRST Robotics
 
Java: Objects and Object References
Java: Objects and Object ReferencesJava: Objects and Object References
Java: Objects and Object ReferencesTareq Hasan
 
The ruby programming language
The ruby programming languageThe ruby programming language
The ruby programming languagepraveen0202
 
‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3Mahmoud Alfarra
 
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B KuteChapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B KuteTushar B Kute
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3mohamedsamyali
 
Java basics variables
 Java basics   variables Java basics   variables
Java basics variablesJoeReddieMedia
 
‫‫Chapter4 Polymorphism
‫‫Chapter4 Polymorphism‫‫Chapter4 Polymorphism
‫‫Chapter4 PolymorphismMahmoud Alfarra
 
Chapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B KuteChapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B KuteTushar B Kute
 
NSCoder Swift - An Introduction to Swift
NSCoder Swift - An Introduction to SwiftNSCoder Swift - An Introduction to Swift
NSCoder Swift - An Introduction to SwiftAndreas Blick
 
Object Oriented Programming_Lecture 2
Object Oriented Programming_Lecture 2Object Oriented Programming_Lecture 2
Object Oriented Programming_Lecture 2Mahmoud Alfarra
 

Was ist angesagt? (20)

Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysUnit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
 
First fare 2011 frc-java-introduction
First fare 2011 frc-java-introductionFirst fare 2011 frc-java-introduction
First fare 2011 frc-java-introduction
 
Generics in java
Generics in javaGenerics in java
Generics in java
 
Java Basic day-2
Java Basic day-2Java Basic day-2
Java Basic day-2
 
Java
JavaJava
Java
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Java: Objects and Object References
Java: Objects and Object ReferencesJava: Objects and Object References
Java: Objects and Object References
 
6 Object Oriented Programming
6 Object Oriented Programming6 Object Oriented Programming
6 Object Oriented Programming
 
The ruby programming language
The ruby programming languageThe ruby programming language
The ruby programming language
 
‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3
 
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B KuteChapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3
 
Class introduction in java
Class introduction in javaClass introduction in java
Class introduction in java
 
Java basics variables
 Java basics   variables Java basics   variables
Java basics variables
 
Python oop third class
Python oop   third classPython oop   third class
Python oop third class
 
‫‫Chapter4 Polymorphism
‫‫Chapter4 Polymorphism‫‫Chapter4 Polymorphism
‫‫Chapter4 Polymorphism
 
Chapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B KuteChapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B Kute
 
NSCoder Swift - An Introduction to Swift
NSCoder Swift - An Introduction to SwiftNSCoder Swift - An Introduction to Swift
NSCoder Swift - An Introduction to Swift
 
Object Oriented Programming_Lecture 2
Object Oriented Programming_Lecture 2Object Oriented Programming_Lecture 2
Object Oriented Programming_Lecture 2
 
Java basic
Java basicJava basic
Java basic
 

Andere mochten auch

Pry at the Ruby Drink-up of Sophia, February 2012
Pry at the Ruby Drink-up of Sophia, February 2012Pry at the Ruby Drink-up of Sophia, February 2012
Pry at the Ruby Drink-up of Sophia, February 2012rivierarb
 
DRb at the Ruby Drink-up of Sophia, December 2011
DRb at the Ruby Drink-up of Sophia, December 2011DRb at the Ruby Drink-up of Sophia, December 2011
DRb at the Ruby Drink-up of Sophia, December 2011rivierarb
 
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013rivierarb
 
Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012
Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012
Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012rivierarb
 
Ruby 2.0 at the Ruby drink-up of Sophia, February 2013
Ruby 2.0 at the Ruby drink-up of Sophia, February 2013Ruby 2.0 at the Ruby drink-up of Sophia, February 2013
Ruby 2.0 at the Ruby drink-up of Sophia, February 2013rivierarb
 
Ruby and Docker on Rails
Ruby and Docker on RailsRuby and Docker on Rails
Ruby and Docker on RailsMuriel Salvan
 
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012rivierarb
 
Quines—Programming your way back to where you were
Quines—Programming your way back to where you wereQuines—Programming your way back to where you were
Quines—Programming your way back to where you wereJean-Baptiste Mazon
 
The Dark Side of Programming Languages
The Dark Side of Programming LanguagesThe Dark Side of Programming Languages
The Dark Side of Programming LanguagesJean-Baptiste Mazon
 

Andere mochten auch (10)

Pry at the Ruby Drink-up of Sophia, February 2012
Pry at the Ruby Drink-up of Sophia, February 2012Pry at the Ruby Drink-up of Sophia, February 2012
Pry at the Ruby Drink-up of Sophia, February 2012
 
DRb at the Ruby Drink-up of Sophia, December 2011
DRb at the Ruby Drink-up of Sophia, December 2011DRb at the Ruby Drink-up of Sophia, December 2011
DRb at the Ruby Drink-up of Sophia, December 2011
 
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
 
Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012
Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012
Piloting processes through std IO at the Ruby Drink-up of Sophia, January 2012
 
Ruby 2.0 at the Ruby drink-up of Sophia, February 2013
Ruby 2.0 at the Ruby drink-up of Sophia, February 2013Ruby 2.0 at the Ruby drink-up of Sophia, February 2013
Ruby 2.0 at the Ruby drink-up of Sophia, February 2013
 
Ruby and Docker on Rails
Ruby and Docker on RailsRuby and Docker on Rails
Ruby and Docker on Rails
 
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
 
Quines—Programming your way back to where you were
Quines—Programming your way back to where you wereQuines—Programming your way back to where you were
Quines—Programming your way back to where you were
 
The Dark Side of Programming Languages
The Dark Side of Programming LanguagesThe Dark Side of Programming Languages
The Dark Side of Programming Languages
 
Untitled talk at Riviera.rb
Untitled talk at Riviera.rbUntitled talk at Riviera.rb
Untitled talk at Riviera.rb
 

Ähnlich wie Ruby object model at the Ruby drink-up of Sophia, January 2013

Presentation 3rd
Presentation 3rdPresentation 3rd
Presentation 3rdConnex
 
Object Oriented Programming.pptx
Object Oriented Programming.pptxObject Oriented Programming.pptx
Object Oriented Programming.pptxSAICHARANREDDYN
 
Introduction to Python - Part Three
Introduction to Python - Part ThreeIntroduction to Python - Part Three
Introduction to Python - Part Threeamiable_indian
 
Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)Christopher Haupt
 
Ruby object model - Understanding of object play role for ruby
Ruby object model - Understanding of object play role for rubyRuby object model - Understanding of object play role for ruby
Ruby object model - Understanding of object play role for rubyTushar Pal
 
جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲Mohammad Reza Kamalifard
 
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013 The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013 GR8Conf
 
Active Support Core Extensions (1)
Active Support Core Extensions (1)Active Support Core Extensions (1)
Active Support Core Extensions (1)RORLAB
 
Presentation 4th
Presentation 4thPresentation 4th
Presentation 4thConnex
 
Reusable Ruby • Rt 9 Ruby Group • Jun 2012
Reusable Ruby • Rt 9 Ruby Group • Jun 2012Reusable Ruby • Rt 9 Ruby Group • Jun 2012
Reusable Ruby • Rt 9 Ruby Group • Jun 2012skinandbones
 
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAPYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAMaulik Borsaniya
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programmingMH Abid
 
The Dark Art of Rails Plugins (2008)
The Dark Art of Rails Plugins (2008)The Dark Art of Rails Plugins (2008)
The Dark Art of Rails Plugins (2008)lazyatom
 

Ähnlich wie Ruby object model at the Ruby drink-up of Sophia, January 2013 (20)

Presentation 3rd
Presentation 3rdPresentation 3rd
Presentation 3rd
 
Object Oriented Programming.pptx
Object Oriented Programming.pptxObject Oriented Programming.pptx
Object Oriented Programming.pptx
 
Introduction to Python - Part Three
Introduction to Python - Part ThreeIntroduction to Python - Part Three
Introduction to Python - Part Three
 
Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)
 
Ruby object model - Understanding of object play role for ruby
Ruby object model - Understanding of object play role for rubyRuby object model - Understanding of object play role for ruby
Ruby object model - Understanding of object play role for ruby
 
جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه هفتم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
 
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013 The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
 
Active Support Core Extensions (1)
Active Support Core Extensions (1)Active Support Core Extensions (1)
Active Support Core Extensions (1)
 
About Python
About PythonAbout Python
About Python
 
Python classes objects
Python classes objectsPython classes objects
Python classes objects
 
Python advance
Python advancePython advance
Python advance
 
Presentation 4th
Presentation 4thPresentation 4th
Presentation 4th
 
Python_Unit_2 OOPS.pptx
Python_Unit_2  OOPS.pptxPython_Unit_2  OOPS.pptx
Python_Unit_2 OOPS.pptx
 
Python3
Python3Python3
Python3
 
Reusable Ruby • Rt 9 Ruby Group • Jun 2012
Reusable Ruby • Rt 9 Ruby Group • Jun 2012Reusable Ruby • Rt 9 Ruby Group • Jun 2012
Reusable Ruby • Rt 9 Ruby Group • Jun 2012
 
Python - OOP Programming
Python - OOP ProgrammingPython - OOP Programming
Python - OOP Programming
 
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAPYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
OOPS.pptx
OOPS.pptxOOPS.pptx
OOPS.pptx
 
The Dark Art of Rails Plugins (2008)
The Dark Art of Rails Plugins (2008)The Dark Art of Rails Plugins (2008)
The Dark Art of Rails Plugins (2008)
 

Kürzlich hochgeladen

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Kürzlich hochgeladen (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Ruby object model at the Ruby drink-up of Sophia, January 2013