3

If all methods are public unless they are explicitly defined as something else, is it ever necessary to define a method as public?

wattostudios
  • 8,666
  • 13
  • 43
  • 57
Emanuil Rusev
  • 34,563
  • 55
  • 137
  • 201

3 Answers3

11

Well, you answered the question already by naming the default: no, it is not necessary.

To quote the manual:

Class methods may be defined as public, private, or protected. Methods declared without any explicit visibility keyword are defined as public.

However, I consider it good practise to always do so.

Gordon
  • 312,688
  • 75
  • 539
  • 559
1

Because public is the default it isn't necessary to define it.

fabrik
  • 14,094
  • 8
  • 55
  • 71
1

There are two style tendencies in php - the "javaesque" majority considers visibility modifiers very important and uses them actively, in the pythonesque minority (i personally belong to) we think that all that public-private-interface-abstract stuff is nothing more but a waste of RAM.

user187291
  • 53,363
  • 19
  • 95
  • 127
  • 2
    I'd be interested to hear why! – sunwukung Sep 16 '10 at 09:05
  • @stereofrog: Neither of your responses answer sunwukung's question; they're actually rather cargo cult in nature. "If python doesn't use it, it must not be worthwhile" isn't an answer. – EricBoersma Sep 16 '10 at 14:17
  • @stereofrog: Neither of those come close to answering sunwukung's question. Asking a question with a desired answer, and deliberately stating that you're going to ignore people who disagree with you isn't valuable at all. Like sunwukung, I would be fascinated to read about why the python community considers access modifiers unnecessary, but neither of your answers have come close to providing that information. – EricBoersma Sep 16 '10 at 15:16