簡體   English   中英

用默認值定義類

[英]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”未定義”為什么?

您的代碼有一些小問題。 首先,您需要先定義班級,然后再創建student1student2 在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM