所以說我有這個類:Python - 如何獲得類中的所有靜態變量?
class Person:
first_name = 'First Name'
last_name = 'Last Name'
phone_number = '000-000'
我想要做的是讓first_name
,last_name
和phone_number
,在正確的順序。
謝謝。
所以說我有這個類: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'類變量 - 它們應該是實例變量。 –