The answer to this question depends on the context. A gun is a better weapon for self-defense in cases of an emergency, such as when someone is threatening to hurt you or your loved ones. However, a knife is more versatile and can be used for other purposes, such as cooking or cleaning.