如何在python中打印属性。这是印刷地点。但我需要打印'';25“;

如何在python中打印属性。这是印刷地点。但我需要打印'';25“;,python,Python,它应该打印一个数字,而不是位置 a=25 class me: def it(a): print(a) m=me() m.it() 我应该得到25,但我得到-这应该是类,a必须在类内,我定义set/get方法 class me: def __init__(self, a): self.a = a def set_a(self, v): self.a = v def get_a(self):

它应该打印一个数字,而不是位置

a=25
class me:
    def it(a):
        print(a)
m=me()
m.it()

我应该得到25,但我得到-

这应该是类,a必须在类内,我定义set/get方法

class me:

    def __init__(self, a):
        self.a = a      

    def set_a(self, v):
        self.a = v

    def get_a(self):
        return self.a

m = me(5)

m.get_a()
m.set_a(12)
m.get_a()
输出

5
12

在您的情况下,
it
方法被视为
实例方法
,对于
实例方法
,第一个参数始终是实例(
self
)。因此,当您打印(a)
时,它是打印实例的位置,而不是打印变量
a
的值

您可以将
it
方法声明为静态,如下所示

a=25
class me:
    @staticmethod
    def it():
        print(a)
m=me()
m.it()
或者你可以

a=25
class me:
    def it(self):
        print(a)
m=me()
m.it()

你们班没有安眠药。“A”只是一个全局变量,放在类
定义它(self):
将A更改为self以修复引用。对于我来说,问题不清楚。OP似乎缺少一些关于类的一般知识。使用第一个
get\u a
可以访问class属性
a
。然后使用
set\u a
设置实例属性
a
,然后检索实例属性。为什么要混合类属性和实例属性?@Matthias我不明白你的意思,类属性是我的属性,我什么都不混合。仅设置一个指定值。你能建议改变吗?pd:作为一个完整的类,我也错过了init函数,因为您的第一个
get_a
访问
me.a
。然后使用
set_a
设置
m.a
(而
me.a
仍然存在)。第二个
get_a
访问现有的实例属性
m.a
。我觉得你应该重温一下你对两者区别的认识。引用文档:“一般来说,实例变量用于每个实例的唯一数据,类变量用于类的所有实例共享的属性和方法”