Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

agnos.is Forums

  1. Home
  2. Programmer Humor
  3. Object oriented programming in Python be like:

Object oriented programming in Python be like:

Scheduled Pinned Locked Moved Programmer Humor
49 Posts 28 Posters 1 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T [email protected]

    Only if you define it.

    const that = this

    M This user is from outside of this forum
    M This user is from outside of this forum
    [email protected]
    wrote on last edited by
    #17

    I remember that a long time ago. Oh god

    A 1 Reply Last reply
    11
    • kayohtie@pawb.socialK [email protected]

      C/C++ are just scripting languages that have to become OS+arch -specific byte-code before execution.

      G This user is from outside of this forum
      G This user is from outside of this forum
      [email protected]
      wrote on last edited by
      #18

      c and c++ require compilation to run though. Python does not. it runs through an interpreter. thus it's a scripting language.

      same can be said for node, ruby, and other interpreted languages.

      the problem with Python specifically is that it can't define itself as more one than the other. this makes developing in it messy and difficult because it refuses to adopt one over the other and fails to standardize. that's why we get little idiosyncrasies like the self referencing OOP in Python. it's been shoved into the language without any real concern for maintainability or longevity in the language and is only meant to fit into every crack and crevasse, like a putty(or shit).

      it took almost two decades for them to implement a switch/case that doesn't even work like 99% of all languages because it was an afterthought. when devs complained through official channels they were told to pound sand.

      Python is a hammer in a screw driven world. You can nail those screws in to solve your problems, but you'll never get them back out.

      Python doesn't deserve half of the praise it gets because they continue to piss on developers and have the audacity to tell them it's rain. not only that, the corporate interests (google) are pulling financial support of the language for the "new thing".

      my hope is that Python gets the same treatment that the Python community gave to devs.

      kayohtie@pawb.socialK 1 Reply Last reply
      2
      • G [email protected]

        c and c++ require compilation to run though. Python does not. it runs through an interpreter. thus it's a scripting language.

        same can be said for node, ruby, and other interpreted languages.

        the problem with Python specifically is that it can't define itself as more one than the other. this makes developing in it messy and difficult because it refuses to adopt one over the other and fails to standardize. that's why we get little idiosyncrasies like the self referencing OOP in Python. it's been shoved into the language without any real concern for maintainability or longevity in the language and is only meant to fit into every crack and crevasse, like a putty(or shit).

        it took almost two decades for them to implement a switch/case that doesn't even work like 99% of all languages because it was an afterthought. when devs complained through official channels they were told to pound sand.

        Python is a hammer in a screw driven world. You can nail those screws in to solve your problems, but you'll never get them back out.

        Python doesn't deserve half of the praise it gets because they continue to piss on developers and have the audacity to tell them it's rain. not only that, the corporate interests (google) are pulling financial support of the language for the "new thing".

        my hope is that Python gets the same treatment that the Python community gave to devs.

        kayohtie@pawb.socialK This user is from outside of this forum
        kayohtie@pawb.socialK This user is from outside of this forum
        [email protected]
        wrote on last edited by
        #19

        Python is compiled at "runtime" to a similar OS+arch byte-code minus ELF headers that Linux binaries typically have from gcc.

        My point was it's a stupid distinction and worthless when the other points about poor implementations of common language frameworks are plenty on their own is all, and it's needlessly snobbish.

        As far as class variable reference however I wish more languages self-referenced. In my eyes it makes it far clearer at a given line of code glance as to where the hell a value came from as opposed to just by name. I feel a keyword like self::variableName, or maybe more aptly &self as a pointer to reference in C++ would be very clear, like Rust does, which is very much, by the original definition, a programming language instead of scripting. Even Java, which is definitely not a scripting language though is still run inside a virtual machine, uses this. I don't personally like the term versus self, but eh.

        Though if you want a hammer in a screw-driven world look no further than Electron. I think it puts anyone else's even purposeful attempts at such to shame.

        1 Reply Last reply
        11
        • eager_eagle@lemmy.worldE [email protected]

          nah, I'm never complaining about self in Python after having tried the this and that nonsense in JS.

          oh, you're using a named function instead of an arrow fn? Guess what, this is not what it used to be anymore.

          D This user is from outside of this forum
          D This user is from outside of this forum
          [email protected]
          wrote on last edited by
          #20

          As a non-programmer who's occasionally dabbled with wxPython, I've entangled myself with self.parent.parent and their childs/siblings more than once. At that stage I know my project is done.

          1 Reply Last reply
          4
          • lime@feddit.nuL [email protected]

            oop hasn't been "hot" for 20 years.

            D This user is from outside of this forum
            D This user is from outside of this forum
            [email protected]
            wrote on last edited by
            #21

            Might not be hot, but it is sticky.

            1 Reply Last reply
            3
            • kayohtie@pawb.socialK [email protected]

              Wait there's a "that"???

              eager_eagle@lemmy.worldE This user is from outside of this forum
              eager_eagle@lemmy.worldE This user is from outside of this forum
              [email protected]
              wrote on last edited by [email protected]
              #22

              it's common practice as a workaround to save this when changing contexts, since this may change under you, in callbacks and such

              J 1 Reply Last reply
              24
              • G [email protected]

                that's because anyone who develops oop in Python is mentally ill.

                Python is a scripting language, not to be confused with an actual programming language. Like everything else in development over the last decade, newbs are just shoehorning whatever is hot into the language because nobody is stopping them.

                A This user is from outside of this forum
                A This user is from outside of this forum
                [email protected]
                wrote on last edited by
                #23

                You're right in that OOP feels very shoehorned in with Python. But not every project has a Linus Torvalds to publicly humiliate horrible ideas and implementations.

                F 1 Reply Last reply
                4
                • P [email protected]

                  Reminds me of java

                  I have Toolkit toolkit = Toolkit.getDefaultToolkit(); seared into my brain. Then there were the bean factories…

                  F This user is from outside of this forum
                  F This user is from outside of this forum
                  [email protected]
                  wrote on last edited by
                  #24

                  At least with Rust, there is a specific, defensible goal for why it does that.

                  Java is just over designed. All of java.io reads like somebody's Object Orientated Programming 101 final project, and they'd get a B- for it. Lots of things where you can see how they're abstracting things, but there's no thought at all in bringing it together in a tidy way.

                  F 1 Reply Last reply
                  11
                  • G [email protected]

                    that's because anyone who develops oop in Python is mentally ill.

                    Python is a scripting language, not to be confused with an actual programming language. Like everything else in development over the last decade, newbs are just shoehorning whatever is hot into the language because nobody is stopping them.

                    F This user is from outside of this forum
                    F This user is from outside of this forum
                    [email protected]
                    wrote on last edited by
                    #25

                    What 2003 forum thread did this comment crawl out of?

                    1 Reply Last reply
                    23
                    • F [email protected]

                      At least with Rust, there is a specific, defensible goal for why it does that.

                      Java is just over designed. All of java.io reads like somebody's Object Orientated Programming 101 final project, and they'd get a B- for it. Lots of things where you can see how they're abstracting things, but there's no thought at all in bringing it together in a tidy way.

                      F This user is from outside of this forum
                      F This user is from outside of this forum
                      [email protected]
                      wrote on last edited by
                      #26

                      Not like C# is all that much better. So much garbage in the fundamentals just because it was done that way at the start and "they can't change it now". The best example is the IList interface.

                      Theoretically this interface exposes both index-based access and collection-like modifications and as such would be perfect in a function if you need those two features on a type. In reality you can't use it as a function parameter because half the official types implementing IList aren't modifiable and throw a runtime error. E.g Arrays

                      kogasa@programming.devK T S 3 Replies Last reply
                      3
                      • L [email protected]

                        Sorry, I'm too Rust-pilled for this OOP nonsense

                        
                        pub fn new() -> Self {
                            Self::self().self.unwrap()
                        }
                        
                        
                        S This user is from outside of this forum
                        S This user is from outside of this forum
                        [email protected]
                        wrote on last edited by
                        #27

                        Even regular Rust code is more "exciting" than Python in this regard, since you have a choice between self, &self, and &mut self. And occasionally mut self, &'a self, and even self: Box<Self>. All of which offer different semantics depending on what exactly you're trying to do.

                        D 1 Reply Last reply
                        15
                        • M [email protected]

                          I remember that a long time ago. Oh god

                          A This user is from outside of this forum
                          A This user is from outside of this forum
                          [email protected]
                          wrote on last edited by
                          #28

                          I remember this too... what a nightmare.

                          1 Reply Last reply
                          4
                          • eager_eagle@lemmy.worldE [email protected]

                            nah, I'm never complaining about self in Python after having tried the this and that nonsense in JS.

                            oh, you're using a named function instead of an arrow fn? Guess what, this is not what it used to be anymore.

                            J This user is from outside of this forum
                            J This user is from outside of this forum
                            [email protected]
                            wrote on last edited by
                            #29

                            Oh, you assigned a method to a variable before calling it? Congratulations, this is now undefined.

                            P 1 Reply Last reply
                            16
                            • F [email protected]

                              Not like C# is all that much better. So much garbage in the fundamentals just because it was done that way at the start and "they can't change it now". The best example is the IList interface.

                              Theoretically this interface exposes both index-based access and collection-like modifications and as such would be perfect in a function if you need those two features on a type. In reality you can't use it as a function parameter because half the official types implementing IList aren't modifiable and throw a runtime error. E.g Arrays

                              kogasa@programming.devK This user is from outside of this forum
                              kogasa@programming.devK This user is from outside of this forum
                              [email protected]
                              wrote on last edited by [email protected]
                              #30

                              That's a footgun sure but at least you can avoid it once you're aware of the problem.

                              I never write function signatures with mutable interfaces. It's always IEnumerable, IReadOnlyCollection, or IReadOnlyList; otherwise, use a concrete type. The latter is typical for private/protected methods that are called with instance members of a concrete type rather than public interfaces. If you want to mutate an object, you should own it. Public methods are invoked with data not owned by the instance.

                              For example, a lot of extension methods in LINQ have a signature IEnumerable<T> --> IEnumerable<T>, and internally the first thing they do is call .ToList(). The interface makes minimal assumptions about the input data, then puts it into a concrete type you can manipulate efficiently. You can similarly define a method for IReadOnlyList and explicitly make it mutable via .ToList(), rather than use IList and check .IsReadOnly. Both ensure correctness but the former does it at the type level, at design time, instead of relying on runtime checks.

                              C# is old and full of oldness. But it's also an excellent language that can be written beautifully if you know how. And there's lots of great code to learn from in the open-source dotnet core runtime repo and related projects.

                              F 1 Reply Last reply
                              1
                              • A [email protected]

                                You're right in that OOP feels very shoehorned in with Python. But not every project has a Linus Torvalds to publicly humiliate horrible ideas and implementations.

                                F This user is from outside of this forum
                                F This user is from outside of this forum
                                [email protected]
                                wrote on last edited by
                                #31

                                In what way does OOP feel shoehorned in with Python?
                                I ask since that is not my own impression of the language.

                                Would you also be willing to share what language(s) you feel do(es) OOP without it being shoehorned in?

                                A A 2 Replies Last reply
                                6
                                • P [email protected]

                                  Reminds me of java

                                  I have Toolkit toolkit = Toolkit.getDefaultToolkit(); seared into my brain. Then there were the bean factories…

                                  M This user is from outside of this forum
                                  M This user is from outside of this forum
                                  [email protected]
                                  wrote on last edited by
                                  #32

                                  Now my brain wants to relate Java somehow to beancounters.

                                  P 1 Reply Last reply
                                  2
                                  • S [email protected]

                                    Even regular Rust code is more "exciting" than Python in this regard, since you have a choice between self, &self, and &mut self. And occasionally mut self, &'a self, and even self: Box<Self>. All of which offer different semantics depending on what exactly you're trying to do.

                                    D This user is from outside of this forum
                                    D This user is from outside of this forum
                                    [email protected]
                                    wrote on last edited by
                                    #33

                                    I'll add that 100% of the above is understood by the compiler. Unlike Python or JavaScript where you don't know how bad you have it until the program is already running.

                                    L 1 Reply Last reply
                                    6
                                    • A [email protected]

                                      Write a new method, make sure to reference self first. Write a new method, make sure to reference self first. Call the method, make sure to reference self first.

                                      Yeah, I can see it.

                                      A This user is from outside of this forum
                                      A This user is from outside of this forum
                                      [email protected]
                                      wrote on last edited by
                                      #34

                                      You don't reference self when calling a method, what on earth are you talking about?
                                      You start with the instance when calling the method, like most/all other OOP languages.

                                      Also there are benefits with the explicit self/this to access instance properties.
                                      In C++ you need to make sure all class properties/members have a naming scheme that does not conflict with potential parameter names or other names of other variables.

                                      1 Reply Last reply
                                      3
                                      • F [email protected]

                                        In what way does OOP feel shoehorned in with Python?
                                        I ask since that is not my own impression of the language.

                                        Would you also be willing to share what language(s) you feel do(es) OOP without it being shoehorned in?

                                        A This user is from outside of this forum
                                        A This user is from outside of this forum
                                        [email protected]
                                        wrote on last edited by
                                        #35

                                        Yeah, some weird accusations. Python has had classes since its inception (1.0).

                                        Also the image in the post makes no sense. It shows multiple (Spidey) instances all pointing to each other which is not how self works.
                                        self is just a parameter that may contain different instances depending how it was called. This is also true for any other parameters in any function, each time a function is called it may have a different instance.

                                        1 Reply Last reply
                                        3
                                        • A [email protected]
                                          This post did not contain any content.
                                          I This user is from outside of this forum
                                          I This user is from outside of this forum
                                          [email protected]
                                          wrote on last edited by
                                          #36

                                          Break convention

                                          `
                                          class foo:
                                          def init(cunt, bar):
                                          cunt.bar=True

                                          `

                                          1 Reply Last reply
                                          9
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups