Programmer Humor

32557 readers
387 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
1
 
 
2
 
 
3
 
 
4
 
 

~~sauce~~ source

5
 
 

Python allows programmers to pass additional arguments to functions via comments. Now armed with this knowledge head out and spread it to all code bases.

Feel free to use the code I wrote in your projects.

Link to the source code: https://github.com/raldone01/python_lessons_py/blob/main/lesson_0_comments.ipynb

Image transcription:

from lib import add

# Go ahead and change the comments.
# See how python uses them as arguments.

result = add()  # 1 2
print(result)
result = add()  # 3 4
print(result)
result = add()  # 3 4 5 20
print(result)

Output:

3
7
32
6
 
 
7
 
 
8
 
 

That's not universal. For instance, last week I got help writing a bash script. But I hope they're helping lots of you in lots of ways.

9
 
 
10
 
 
11
12
 
 
13
 
 
14
 
 

https://en.wikipedia.org/wiki/Three_Dead_Trolls_in_a_Baggie

I gave up looking for the year this was actually written but it existed on mp3.com in 2001.

15
 
 
class BaseFunction {
  static #allowInstantiation = false;

  constructor(...args) {
    if (!BaseFunction.#allowInstantiation) {
      throw new Error(
        "Why are you trying to use 'new'? Classes are so 2015! Use our fancy 'run' method instead!"
      );
    }
    for (const [name, validator] of this.parameters()) {
      this[name] = validator(args.shift());
    }
  }

  parameters() {
    return [];
  }

  body() {
    return undefined;
  }

  static run(...args) {
    BaseFunction.#allowInstantiation = true;
    const instance = new this(...args);
    BaseFunction.#allowInstantiation = false;
    return instance.body();
  }
}

class Add extends BaseFunction {
  parameters() {
    return [
      ["a", (x) => Number(x)],
      ["b", (x) => Number(x)],
    ];
  }

  body() {
    return this.a + this.b;
  }
}

console.log(Add.run(5, 3)); // 8



16
 
 
17
 
 
18
 
 
19
81
Factory factory factory (factoryfactoryfactory.net)
20
 
 
21
 
 
22
 
 
23
 
 
24
 
 
25
 
 
view more: next ›