Python - 如何获得类中的所有静态变量?
所以说我有这个类:Python - 如何获得类中的所有静态变量?
class Person:
first_name = 'First Name'
last_name = 'Last Name'
phone_number = '000-000'
我想要做的是让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']
这也会给你方法。 –
不能从外部访问的变量,如果它不是在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)
这不是回答这个问题,此外,它只是*不正确*。你可以通过'ClassName.class_member'从外部访问类级别的变量。 –
对不起,这是事实,你可以按照你说的方式来做,但我写的方式也是正确的 – PlanetGazer8360
但是它是完全的与实际问题无关...... OP要求*字段的名称*而不是字段本身。 –
你到目前为止尝试过什么? – DhKo
所以,你可以使用*'vars(Person)'来访问属于一个类的*成员。但是,你会发现这包括*所有成员*,所以像方法这样的东西是类中的成员,其他特殊的东西也是'__doc__'和'__dict__'。所以,过滤'vars(Person)',也许对于那些不是'startswith('_')'的东西,也许是不可调用的东西(...)' –
另外,希望你没有实际类中的'first_name','last_name'和'phone_number'类变量 - 它们应该是实例变量。 –