相关疑难解决方法(0)

5409
推荐指数
22
解决办法
75万
查看次数

3360
推荐指数
24
解决办法
73万
查看次数

是否有一种简单,优雅的方式来定义单身人士?

似乎有很多方法可以在Python中定义单例.Stack Overflow是否有共识?

python singleton design-patterns

427
推荐指数
13
解决办法
27万
查看次数

元类的一些(具体)用例是什么?

我有一个朋友喜欢使用元类,并定期提供它们作为解决方案.

我很想你几乎不需要使用元类.为什么?因为我认为如果你正在对一个类做类似的事情,你应该把它做成一个对象.并且需要一个小的重新设计/重构.

能够使用元类导致许多地方的很多人使用类作为某种二流对象,这对我来说似乎是灾难性的.编程是否被元编程取代?遗憾的是,类装饰器的添加使其更加可接受.

所以,我非常想知道Python中元类的有效(具体)用例.或者开悟为什么变异类有时比变异对象更好.

我将开始:

有时,在使用第三方库时,能够以某种方式改变类是有用的.

(这是我能想到的唯一一个案例,并不具体)

python metaclass

103
推荐指数
10
解决办法
2万
查看次数

如何在蓝图中访问app.config?

我试图authorisation.py在包api中的蓝图内访问访问应用程序配置.我正在初始化__init__.py其中使用的蓝图authorisation.py.

__init__.py

from flask import Blueprint
api_blueprint = Blueprint("xxx.api", __name__, None)
from api import authorisation
Run Code Online (Sandbox Code Playgroud)

authorisation.py

from flask import request, jsonify, current_app

from ..oauth_adapter import OauthAdapter
from api import api_blueprint as api

client_id = current_app.config.get('CLIENT_ID')
client_secret = current_app.config.get('CLIENT_SECRET')
scope = current_app.config.get('SCOPE')
callback = current_app.config.get('CALLBACK')

auth = OauthAdapter(client_id, client_secret, scope, callback)


@api.route('/authorisation_url')
def authorisation_url():
    url = auth.get_authorisation_url()
    return str(url)
Run Code Online (Sandbox Code Playgroud)

我得到RuntimeError:在应用程序上下文之外工作

我明白为什么会这样,但是访问这些配置设置的正确方法是什么?

----更新----暂时,我已经这样做了.

@api.route('/authorisation_url')
def authorisation_url():
    client_id, client_secret, scope, callback = config_helper.get_config()
    auth = OauthAdapter(client_id, client_secret, …
Run Code Online (Sandbox Code Playgroud)

flask

94
推荐指数
6
解决办法
4万
查看次数

Python和Singleton模式

可能重复:
在Python中定义单例是否有简单,优雅的方法?

在Python中实现单例模式的最佳方法是什么?似乎不可能像通常使用Singleton模式那样声明构造函数是私有的还是受保护的......

python singleton design-patterns

92
推荐指数
0
解决办法
12万
查看次数

如何在python @ functools.lru_cache上使用cache_clear()

文件说明:

装饰器还提供cache_clear()清除或使缓存无效的功能.

它没有提供有关如何使用的任何示例或指导 cache_clear()

我有两个问题:

  • 如何cache_clear()从不同的功能运行?
  • 如果我cache_clear()有条件地将一个调用放在正在缓存的函数中,它会被执行吗?

python python-3.x

38
推荐指数
2
解决办法
1万
查看次数

使用元类的__call__方法而不是__new__?

在讨论元类时,文档说明:

您当然也可以覆盖其他类方法(或添加新方法); 例如__call__(),在调用类时,在元类中定义自定义方法允许自定义行为,例如,并不总是创建新实例.

我的问题是:假设我想在调用类时有自定义行为,例如缓存而不是创建新对象.我可以通过覆盖__new__类的方法来做到这一点.我什么时候想要定义一个元类__call__?这种方法给出了什么,这是不可能实现的__new__

python oop metaclass

35
推荐指数
4
解决办法
2万
查看次数

在 __init__ 中为用户类设置默认/空属性

我有不错的编程水平,并从这里的社区中获得了很多价值。然而,我从来没有在编程方面进行过太多的学术教学,也没有与真正有经验的程序员一起工作。因此,我有时会为“最佳实践”而苦恼。

对于这个问题,我找不到更好的地方,尽管可能有讨厌这些问题的喷子,我还是发布了这个。如果这让你感到不安,很抱歉。我只是想学习,而不是惹你生气。

题:

当我创建一个新类时,我是否应该在init 中设置所有实例属性,即使它们是 None 并且实际上后来在类方法中分配了值?

MyClass 的属性结果见下例:

class MyClass:
    def __init__(self,df):
          self.df = df
          self.results = None

    def results(df_results):
         #Imagine some calculations here or something
         self.results = df_results
Run Code Online (Sandbox Code Playgroud)

我在其他项目中发现,当类属性只出现在类方法中时,它们可能会被埋没,而且还有很多事情要做。

那么对于经验丰富的专业程序员来说,什么是标准做法呢?为了可读性,您会在init 中定义所有实例属性吗?

如果有人有任何关于我可以在哪里找到这些原则的材料的链接,那么请将它们放在答案中,我们将不胜感激。我知道 PEP-8 并且已经在上面搜索了我的问题好几次,但找不到任何涉及此问题的人。

谢谢

安迪

python class instance-variables instance python-attrs

19
推荐指数
2
解决办法
2万
查看次数

我们真的需要python中的@staticmethod装饰器来声明静态方法

我很好奇为什么我们需要@staticmethod装饰器将方法声明为static.我正在阅读Python中的静态方法,我开始知道静态方法可以在不实例化其类的情况下进行调用.所以我尝试了下面的两个例子,但两者都做了同样的事情:

class StatMethod:
  def stat():
    print("without Decorator")

class StatMethod_with_decorator:
  @staticmethod
  def stat():
    print("With Decorator")
Run Code Online (Sandbox Code Playgroud)

如果我stat()直接在类上调用该方法,则打印/显示以下值:

>> StatMethod.stat()
without Decorator
>> StatMethod_with_decorator.stat()
With Decorator
Run Code Online (Sandbox Code Playgroud)

python static

17
推荐指数
1
解决办法
7769
查看次数