2 things that surprise a lot of people as self defense weapons:
1. A handful of dirt, picked up off the ground and tossed at your assailant's eyes, blinding them and buying you time to escape or attack.
2. A coat, jacket, or sweatshirt, etc...- used against a knife attack in the same style as the 19th century cloak & dagger fighting style. Catch the point of the blade in the fabric of the coat and trap the attacker's arm by twisting the fabric around the weapon to neutralize or disarm.
I like those options for self defense because they're simple, practical, and don't require any special equipment, preparation, or permits. Also, unlike a gun, stick or knife, the "weapon" can't be wrested from you and used against you. It's also hard to sue a guy in a court of law who "beat you up with his sweat shirt".