Just for the sake of complete accuracy-
It's also illegal to carry a switchblade (blade 2" or longer) on ones person on private property, including in ones own home.
This is the result of an Appeals Court ruling from 2009, People v SC (a juvenile court case, so no name of defendant).
Notice how in statute 21510, under part (b), it only says "Carries the knife upon the person", with no mention of public or private property/places. Link-
In People v SC, Mr. SC was found to have a switchblade on his person (in a pocket) while on private property. He was arrested, convicted, and appealed. He tried to argue that the "public place" reference in part (a), which refers to a switchblade in a vehicle in a public place, should also apply to part (b), carrying a switchblade on ones person, and that since he was carrying on private property rather than a public place that his conviction should be overturned.
But the Appeals Court did not agree, ruling that because part (b) doesn't specify public or private property, that it applies to everywhere in the state, including in ones own home.
Here are some quotes from their ruling-
"we conclude the statute is violated any time a person carries a switchblade knife on his or her person, regardless of where the possession occurs".
"A switchblade carried on the person represents a constant threat to others, whether carried in public or in private".
"A switchblade carried at home, for example, is dangerous to family members and house guests during an argument".
This is one of the most boneheaded rulings that I have seen the California Appeals Court make. But on the bright side, there is language in that ruling, that in my opinion, confirms ones legal right to possess "switchblades" (blades 2" or longer), in the state of California.
Here is a link to their ruling-
https://law.justia.com/cases/california/court-of-appeal/2009/a123371/
Note: That ruling refers to section 653k, which was the switchblade statute in 2009, California later changed how they numbered penal code statutes. Section 653k was changed to 21510.