python识别不了self_如何在Python中避免显式的“self”?

以前的答案基本上都是“你不能”或“你不应该”的变体。虽然我同意后一种观点,但从技术上讲,这个问题仍然没有答案。

此外,有正当的理由可以解释为什么有些人会想按照实际问题的思路去做一些事情。我有时遇到的一件事是冗长的数学公式,其中使用长名称会使公式无法识别。在一个封闭的示例中,有两种方法可以做到这一点:import numpy as np

class MyFunkyGaussian() :

def __init__(self, A, x0, w, s, y0) :

self.A = float(A)

self.x0 = x0

self.w = w

self.y0 = y0

self.s = s

# The correct way, but subjectively less readable to some (like me)

def calc1(self, x) :

return (self.A/(self.w*np.sqrt(np.pi))/(1+self.s*self.w**2/2)

* np.exp( -(x-self.x0)**2/self.w**2)

* (1+self.s*(x-self.x0)**2) + self.y0 )

# The correct way if you really don't want to use 'self' in the calculations

def calc2(self, x) :

# Explicity copy variables

A, x0, w, y0, s = self.A, self.x0, self.w, self.y0, self.s

sq

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值