2016-12-15 120 views
-2

我必須編寫一個程序來演示一個客戶使用他們的信用卡來檢出,我花了幾個小時試圖找出如何做到這一點,並提供了我的代碼如下。Python面向對象的編程

我必須做一個類,然後在主函數中使用它。

這是我到目前爲止有:

class Customer: 

    def __init__(self, customer_name, credit_card_num, credit_security_code, debit_card_num, debit_pin): 
     self.customer_name = name 
     self.credit_card_num = credit_num 
     self.credit_security_code = credit_code 
     self.debit_card_num = debit_num 
     self.debit_pin = debit_pin 


    def inputCardInfo(self): 
     self.customer_name = str(input("Enter your name: ")) 
     self.credit_card_num = str(input("Enter credit card Number: ")) 
     self.credit_security_code = str(input("Enter 3-digit security code: ")) 
     self.debit_card_num = str(input("Enter debit card number: ")) 
     self.debit_pin = str(input("Enter 4-digit PIN: ")) 

然後主要功能:

from customer import Customer 

def main(): 
    print("Welcome to Wake-Mart. Please register.") 
    customer_name = input("enter name: ") 
    customer1 = Customer(customer_name) 
    print("Registration completed") 

main() 

我不知道正確的方法來調用類的方法。我覺得如果我能弄清楚如何做出其中的一項工作,我可以弄清楚其餘的問題。

+0

請閱讀[Python中的OOP](http://anandology.com/python-practice-book/object_oriented_programming.html)。你將能夠通過自己解決你的問題 –

+0

你有什麼嘗試?請閱讀[this](http://stackoverflow.com/help/mcve)。 –

回答

0

如果你想更深入地理解行爲和屬性,我會建議爲每個值做一個單獨的行爲。 (get_credit_num,get_debit_num等) 然後,在你的main中,分別調用每個函數來獲取每個值。

爲了澄清,「類功能」或行爲只是對象可以做的事情。您可以像調用任何函數一樣調用它們,唯一的區別是在將函數替換爲「self」之前,您將調用此行爲的實例的名稱。所以,如果你的對象調用的customer1「InputCardInfo」,你會做它像這樣:

customer1.InputCardInfo(other parameters) 
0

你的代碼,是因爲初始化類時,你是不是通過所有必需的參數將無法正常工作。

customer1 = Customer(customer_name)

所有包含在你的def __init__(self, var1, var2, var3):需求除了self額外的參數來初始化時傳遞給類的實例。你的代碼也有可變的命名問題,但是我希望我的例子能夠爲你澄清一些事情。

快速注意先幫你更好地理解self.customer_name = name沒有意義在你的代碼,因爲有一個名爲name列入__init__()方法沒有參數。您必須將實例變量(self.whatever)與通過__init__(self, external_var)方法傳入的已知變量名關聯,以便self.whatever = external_var。然後,只有那樣,您可以使用班級方法撥打self.whatever,並期望收到您從external_var傳遞的數據。另外,在創建類實例時,您必須在self__init__(self, ..., ...)之後包含的其他參數作爲變量傳遞。

class Customer: 

    def __init__(self, customer_name, credit_card_num, credit_security_code, debit_card_num, debit_pin): 
     self.customer_name = customer_name 
     self.credit_card_num = credit_card_num 
     self.credit_security_code = credit_security_code 
     self.debit_card_num = debit_card_num 
     self.debit_pin = debit_pin 


name = 'Mike' 
cc_num = '0000 0000 0000 0000' 
code = '111' 
debit_num = '1111 1111 1111 1111' 
pin = '1234' 

new_customer = Customer(name, cc_num, code, debit_num, pin)