Sen. John McCain (R-Ariz.) said Thursday that attempts to defund or repeal Obamacare are "not rational" and that the Senate will never do it.

"No one fought harder against [the Affordable Care Act] than I did, but to somehow think we are going to defund it is simply not going to happen at this time," McCain said. "And it will, in my opinion, as it did before, harm the American people's view of the Republican Party."

McCain added: "But I can tell you, in the United States Senate, we will not repeal or defund Obamacare. We will not. And to think we can is not rational."

Sens. Ted Cruz (R-Tex.), Mike Lee (R-Utah), Rand Paul (R-Ky.) and Marco Rubio (R-Fla.) are leading the so-called Defund Obamacare movement, whose supporters say they won't vote to fund the government if the budget funds Obamacare.

House Speaker John Boehner (R-Ohio) will allow a vote on a budget that doesn't fund the health care law on Friday. But since Boehner's announcement, Cruz and Paul have both suggested that it is indeed an uphill battle in the Senate, where Republicans have 46 out of 100 votes.

McCain blamed the effort on new members who don't remember the last government shutdown: "I do note, with some interest, that all or most of the people who are doing this are new and did not have the experience that we had when the American people, who don't like government but don't want it to be shut down, reacted in a very negative fashion toward Congress for doing so."