[英]Defining classes with default values
我知道當我定義一個類時,我需要包括self和init ,但是有人可以幫助我定義默認值的類嗎?
例如:
class Student1():
def __init__(self, college='University', gpa=3.2, credits=45):
...
class Student2():
def __init__(self, college='Community College', gpa=3.8, credits=51):
...
我希望能夠使Student1.college具有“大學”的全局值,Student2.college具有“社區學院”的全局值,Student2.gpa具有3.8的全局值,而Student1.gpa具有3.2的全局值,以便以后在代碼中使用它們時,它們具有我提供的值。
提前致謝!
編輯::
class Student():
def __init__(self, college, gpa, credits)
self.college=college
self.gpa=gpa
self.credits=credits
Student1=Student("university", 3.2, 45)
Student2=Student("community college", 3.8, 51)
def work(self, job='work study')
self.job=job
因此,當我在Python Shell中鍵入Student1.college時,它將返回“ university”。
我希望它使學生1和學生2都具有“作業”功課,但是當我在Shell中鍵入self.job時說“名稱:錯誤名稱“ self”未定義”為什么?
您的代碼有一些小問題。 首先,您需要先定義班級,然后再創建student1
和student2
。 在python中,當您縮進時,您是在告訴解釋器您已經到達塊的末尾(即函數,類,循環或某些其他代碼塊)。 如果您希望work
成為您班級的一種方法,那么它必須成為Student
的班級塊的一部分。
其次,當然,您只能在work
設置job
屬性,而從不調用work
。 在init
中將每個屬性設置為某個默認值通常是一個好主意,但不是必需的。
第三,似乎您缺少一些:
並且至少有一個縮進錯誤。 嘗試這樣的事情:
class Student():
def __init__(self, college, gpa, credits):
self.college = college
self.gpa = gpa
self.credits = credits
self.job = "no job"
def setWork(self, job='work study'):
self.job = job
student1 = Student("university", 3.2, 45)
student1.setWork()
student2 = Student("community college", 3.8, 51)
student2.setWork("Starbucks")
print student1.job
# work study
print student2.job
# Starbucks
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.