Python - 如何获得类中的所有静态变量?

问题描述:

所以说我有这个类:Python - 如何获得类中的所有静态变量?

class Person: 
    first_name = 'First Name' 
    last_name = 'Last Name' 
    phone_number = '000-000' 

我想要做的是让first_namelast_namephone_number,在正确的顺序。
谢谢。

+0

你到目前为止尝试过什么? – DhKo

+0

所以,你可以使用*'vars(Person)'来访问属于一个类的*成员。但是,你会发现这包括*所有成员*,所以像方法这样的东西是类中的成员,其他特殊的东西也是'__doc__'和'__dict__'。所以,过滤'vars(Person)',也许对于那些不是'startswith('_')'的东西,也许是不可调用的东西(...)' –

+0

另外,希望你没有实际类中的'first_name','last_name'和'phone_number'类变量 - 它们应该是实例变量。 –

你可以试试这个:

class Person: 
    first_name = 'First Name' 
    last_name = 'Last Name' 
    phone_number = '000-000' 

data = [i for i in vars(Person) if not i.startswith("__") and not i.endswith("__")] 

new_val = data[::-1] 

输出:

['first_name', 'last_name', 'phone_number'] 
+0

这也会给你方法。 –

不能从外部访问的变量,如果它不是在self.yourVariableName = '东西'。为了使其工作,并能够从外面通过以下方式访问变量,改变程序:

class Person(): 
    def __init__(self): 
     self.first_name = "First Name" 
     self.last_name = "Last Name" 
     self.phone_number = "000-000" 

现在,如果你做同样的文件中的以下内容:

person1 = Person() 
print(person1.first_name) 
print(person1.last_name) 
print(person1.phone_number) 

这应打印在控制台:

First Name 
Last Name 
000-000 

你也可以这样做:

person1 = Person() 
print(person1.first_name) 
print(person1.last_name) 
print(person1.phone_number) 
+1

这不是回答这个问题,此外,它只是*不正确*。你可以通过'ClassName.class_member'从外部访问类级别的变量。 –

+0

对不起,这是事实,你可以按照你说的方式来做,但我写的方式也是正确的 – PlanetGazer8360

+0

但是它是完全的与实际问题无关...... OP要求*字段的名称*而不是字段本身。 –