相关疑难解决方法(0)

静态类变量是否可能?

是否有可能在python中有静态类变量或方法?这样做需要什么语法?

python oop static class class-variables

1824
推荐指数
20
解决办法
114万
查看次数

在Python中访问类的成员变量?

class Example(object):
    def the_example(self):
        itsProblem = "problem"

theExample = Example()
print(theExample.itsProblem)
Run Code Online (Sandbox Code Playgroud)

如何访问类的变量?我试过添加这个定义:

def return_itsProblem(self):
    return itsProblem
Run Code Online (Sandbox Code Playgroud)

然而,这也失败了.

python methods return class

68
推荐指数
3
解决办法
17万
查看次数

类和实例变量有什么区别?

Python中的类和实例变量有什么区别?

class Complex:
    a = 1
Run Code Online (Sandbox Code Playgroud)

class Complex:
    def __init__(self):
        self.a = 1
Run Code Online (Sandbox Code Playgroud)

使用呼叫:x = Complex().a在两种情况下都将x分配给1.

一个更深入的答案__init__(),self将受到赞赏.

python variables class self

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

type(obj)和obj .__ class__之间的区别

type(obj)和之间有什么区别obj.__class__?有可能type(obj) is not obj.__class__吗?

我想编写一个在提供的对象上一般工作的函数,使用与另一个参数相同类型的默认值1.下面的#1或#2哪个变体会做正确的事情?

def f(a, b=None):
  if b is None:
    b = type(a)(1) # #1
    b = a.__class__(1) # #2
Run Code Online (Sandbox Code Playgroud)

python new-style-class

44
推荐指数
4
解决办法
7503
查看次数

Python - 为什么这个类变量没有在方法中定义?

我有一个python应用程序,如下所示:

global_counter = 0
connections = {}

class SocketHandler():
    currentid = 0
    def open(self):
        global global_counter
        global connections
        currentid = global_counter
        global_counter += 1
        connections[currentid] = self
        print "WebSocket " + str(currentid) + " opened"

    def on_close(self):
        global connections
        print "WebSocket " + str(currentid) + " closed"
        del connections[currentid]
Run Code Online (Sandbox Code Playgroud)

我收到错误:

NameError: global name 'currentid' is not defined
Run Code Online (Sandbox Code Playgroud)

在"打开"和"on_close"的行上,我打印我打开/关闭连接.我在课堂上定义了它,为什么不在范围内.另外,我已经读过使用全局变量很糟糕,但我没有看到解决方法.有人可以指出我应该做什么吗?谢谢.

python variables scope

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

从静态变量访问静态方法

有关于如何从静态方法访问静态变量(如大量的回答这一个,和那一个,而关于这个主题的伟大的信息在这里),但我在与其他方向的麻烦:如何使用静态方法初始化静态变量.例如:

import os, platform
class A(object):
    @staticmethod
    def getRoot():
        return 'C:\\' if platform.system() == 'Windows' else '/'
    pth = os.path.join(A.getRoot(), 'some', 'path')
Run Code Online (Sandbox Code Playgroud)

最后一行给出了一个例外:NameError: name 'A' is not defined.如果我使用@classmethod而不是,则会发生同样的错误@staticmethod.

是否可以从类变量访问静态方法?

python static python-2.7

6
推荐指数
1
解决办法
875
查看次数

为什么 Class 变量没有更新其所有实例?

我正在学习课程,但不明白这一点:

class MyClass:
    var = 1

one = MyClass()
two = MyClass()

print(one.var, two.var) # out: 1 1
one.var = 2

print(one.var, two.var) # out: 2 1
Run Code Online (Sandbox Code Playgroud)

我认为类变量可以被所有实例访问,为什么类变量不更新其所有实例?

python oop instance class-variables

5
推荐指数
1
解决办法
2256
查看次数