Python 2.7 在init函数python中调用方法
我对此代码有问题:Python 2.7 在init函数python中调用方法,python-2.7,init,Python 2.7,Init,我对此代码有问题: import math class Money(object): def __init__(self, salary): self.salary = salary sal(self.salary) def sal(self, x): y = ( x - ( ( (x * 0.22) + 6534) ) - (1900.9408 + ( (x - 37568)*.077) ) ) print
import math
class Money(object):
def __init__(self, salary):
self.salary = salary
sal(self.salary)
def sal(self, x):
y = ( x - ( ( (x * 0.22) + 6534) ) - (1900.9408 + ( (x - 37568)*.077) ) )
print '-----------------------------------------------------------'
print 'monthly income before tax will be: ${0:.2f}' .format(x/12)
print 'bi-weekly income before tax will be: ${0:.2f}' .format(x/24)
print 'Hourly after tax: ${0:.2f}' .format(x/24/70)
print '-----------------------------------------------------------'
print 'Income after tax will be: ${0:.2f}' .format(y)
print 'Monthly after tax: ${0:.2f}' .format((y/12))
print 'bi-weekly after tax: ${0:.2f}' .format((y/24))
print 'Hourly after tax: ${0:.2f}' .format(y/24/70)
answer = raw_input('Do you want to do this again?\nType [Y] or [N]: ')
if( answer == 'Y'):
sal(x)
else:
print 'Thank you!'
return
def main():
x = input('Enter your taxable income: ')
salaryLister = Money(x)
main()
回溯显示:
Traceback (most recent call last):
File "taxableincome.py", line 35, in <module>
main()
File "taxableincome.py", line 33, in main
salaryLister = Money(x)
File "taxableincome.py", line 7, in __init__
sal(self.salary)
NameError: global name 'sal' is not defined
回溯(最近一次呼叫最后一次):
文件“taxableincome.py”,第35行,在
main()
文件“taxableincome.py”,第33行,主目录
salaryLister=货币(x)
文件“taxableincome.py”,第7行,在_init中__
sal(自我薪酬)
NameError:未定义全局名称“sal”
什么是:
全局名称“sal”未定义是什么意思
请随时对我的设计发表意见。我很想学习。使用
self.sal
,这就是在python中调用类的实例方法的方式
这在python中的工作原理是,如果您查看您拥有的方法签名
def sal(self, salary)
基本上,它需要类引用作为第一个变量。在python中,当您执行self.sal
时,它会转换为
Money.sal(self, salary)
您也可以这样调用该方法,但推荐的方法是
self.sal(salary)
根据对代码的评论,肯定没有任何明显的危险信号。尽管sal函数中的最后一个return
语句不是必需的。把它放在那里不是问题,只是吸引了我的眼球
既然你问了,我想指出这一点。请尽量遵守编码标准。让它成为你自己的或别人的。重要的是一致性。但是PEP-8是python普遍接受的风格。你甚至可以为你的编辑器提供插件,帮助你坚持下去。您可能需要阅读链接的样式指南