我的名字叫Piyush,我刚开始学习用python编写代码。现在我正在做一个项目。如果有人可以帮助您在函数中添加自定义参数,我们将不胜感激。 我在下面提到我的代码和我面临的问题:
<?php
$re = '/([$][a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)/m';
$str = '"SELECT * FROM table WHERE admin=\'".$admin."\' AND id=".$idclient." AND something=".$something;';
$subst = 'functionname($1)';
$result = preg_replace($re, $subst, $str);
echo $result;
?>
但是,我可以设置total = 100并可以运行游戏,但是我希望用户能够输入他/她想要添加的总筹码。
我希望while循环中的输入(总计)作为运行游戏时的参数。但是我不断收到此错误:
class Chips ():
def __init__ (self, total):
while True:
try:
total = int(input("How many chips as total?: ?"))
except:
print("Please enter an integer")
else:
break
self.total = total
self.bet = 0
def win_bet (self):
self.total = self.total + self.bet
def loose_bet (self):
self.total = self.total - self.bet
请帮助!
感谢您关注我的要求。
答案 0 :(得分:1)
您的类在其构造函数中带有一个参数,但是您也可以从构造函数的输入中读取它。
我想您对在这里想要实现的目标感到困惑。
选项1:
如果可以修改代码的调用者(构成类的代码),并在实例创建时知道total
,只需在构造函数调用中添加参数即可。
total = 100
player_chips = Chips(total)
选项2:
以防万一您无法修改调用方(很可能是从我阅读的内容),那么这意味着您实际上想从输入中读取总计。从构造函数中删除参数。
def __init__ (self):
代替
def __init__(self, total):
答案 1 :(得分:0)
您应该添加方法get_total_from_user并在构造函数中设置默认参数
class Chips ():
def __init__ (self, total=None):
self.total = self.get_total_from_user() if not total else total
self.bet = 0
def win_bet (self):
self.total = self.total + self.bet
def loose_bet (self):
self.total = self.total - self.bet
def get_total_from_user(self):
while True:
try:
return int(input("How many chips as total?: ?"))
except:
print("Please enter an integer")
else:
break
它可以让您从用户那里获得总数
Chips()
或者您可以通过传递值进行设置
Chips(100)
答案 2 :(得分:0)
c = Chips(100)
代码底部的-没有错误。您可以在交互式构造函数中覆盖 total 的值,但是,您答应要发送“ init ”。
c = Chips()
如果您将签名更改为:可以工作
def __init__ (self, total):
总体而言,交互式构造函数似乎是一个非常糟糕的主意。