Knife is good if they don't know you have one. I was attacked some years ago and I used a knife to defend myself, he looked very surprised when he thought it was going to be easy and then he get slashed over the abdomen and then stabbed before he can retaliate and then I run. If you will hesitate if you pull the knife out then you shouldn't have one because that will get you killed or hurt, you can't wait and threaten them with it and let them know you have it before you use it on them.