The mayor of Rio de Janeiro, Eduardo Paes, punched a constituent in the face after being called the Portuguese equivalent of “excrement” in a dispute before stunned diners at a Japanese restaurant. Mr. Paes issued a written apology to the city after the episode, which unfolded Sunday night when he went outside to smoke a cigarette during a meal with his wife and several others. But he qualified the apology by stating that it was unacceptable to face such insults during private moments with his wife. The constituent, Bernardo Botkay, a writer and a singer in a rock band, said he had directed his scorn at Mr. Paes because he believed that the mayor’s policies were benefiting a select group of real estate speculators and contributing to gentrification ahead of the 2014 World Cup and 2016 Summer Olympics, both of which will be held in Rio. “I think it is noteworthy to be physically attacked by the mayor,” Mr. Botkay said. “It clearly shows that he does not have what it takes to run the city.”