A black South African MP says she punched a man in self-defence after he allegedly hurled racial abuse at her. 

Phumzile van Damme from the opposition Democratic Alliance said she got into a row with a white woman at Cape Town's V&A Waterfront when the man intervened. 

She said the man, who was white, was "threatening violence" and used vulgar language to tell her to get out, referring to her as "you black". 

The V&A Waterfront, a top tourist site, has apologised for the incident. 

Ms van Damme was unhappy with the treatment she received from a security officer when she reported the incident. 

"We regret this incident, which we did not handle with the necessary objectivity, respect and empathy," the V&A Waterfront said on its Twitter account.

Ms van Damme said she was standing in a queue in the supermarket when she had a quarrel with a woman who allegedly told her she would "push [her] aside".

"Then when I went out, she was standing there with her family in a threatening manner. And I went to her and said, 'why are you looking at me in a threatening manner?' Then she said, 'it's because you're black', Ms van Damme said in a video on Twitter. 

She said a man, who was with the woman, "was threatening violence so in self-defence I punched him in the head". 

Ms van Damme said she accepted V&A Waterfront's apology and their commitment not to tolerate unacceptable behaviour from its patrons. 

She has, however, threatened to file charges with the police.

NULL Invalid API key or channelobject(stdClass)#8739 (1) { ["error"]=> object(stdClass)#8738 (3) { ["code"]=> int(403) ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["errors"]=> array(1) { [0]=> object(stdClass)#8678 (3) { ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["domain"]=> string(13) "youtube.quota" ["reason"]=> string(13) "quotaExceeded" } } } }