我正在尝试将__init__
变量称为默认变量,但它没有调用
class test1:
def __init__(self,name):
self.name = name
def method1(self,name2=self.name):
return name2
如果我将此功能称为
from test import test1
ma = test1("mkHun")
va = ma.method1() # Here I am expected output is mkhun
ca = ma.method1("new name")
在JavaScript中,此功能称为default parameters。这个功能在python中是否可用或我的代码有问题?
答案 0 :(得分:2)
这是实现类似功能的一种方法。其他人可能有更多的pythonic方式。代码受docs here
启发{{1}}
答案 1 :(得分:0)
class test1:
def __init__(self,name):
self.name = name
def method1(self, name2="This would work"):
"""You can already use self.name here without taking it from the method argument
since self.name always exists, you don't need to put it in the method arguments"""
return name2
ma = test1("mkHun")
va = ma.method1() # Here I am expected output is mkhun
ca = ma.method1("new name")
print(ma.name, "--->", va,"--->", ca)
self.variable对于你在类中定义的每个方法都是可用的,但是@staticmethod,所以你可以简单地给它一个None
作为默认参数,如果参数是None,你可以在你的方法中使用{{1如果它不是None并且参数确实存在,请改用它。希望它有所帮助。