Skip to main content
 首页 » 编程设计

python之(Python 初学者)需要从类(class)开始

2025年05月04日9飞鱼

我开始使用类来创建一个简单的联系人输出,然后是一个像这样的更新版本:

My Contacts 
----------- 
??? Murphy              555-555-8980 
George Smith            555-555-2323 
Mike Johnson            555-555-4780 
----------- 
 
My Contacts 
----------- 
Cade Murphy             555-555-8980 
President George Smith  555-555-2323 
Professor Mike Johnson  555-555-4780 
---------- 

我已经正确设置了函数,但我不知道要将什么放入 class Contact 以便它打印我想要的内容。

class Contact: 
    # I don't know what to put here      
 
def print_directory(contacts): 
    print("My Contacts") 
    print("-----------") 
    for person in contacts: 
        print(person) 
    print("-----------\n") 
 
 
def main(): 
    champ = Contact("???", "Murphy", "555-555-8980") 
    president = Contact("George", "Smith", "555-555-2323") 
    professor = Contact("Mike", "Johnson", "555-555-4780") 
 
    contacts = [champ, president, professor] 
 
    print_directory(contacts) 
 
    champ.set_first_name("Cade") 
    president.set_title("President") 
    professor.set_title("Professor") 
 
    print_directory(contacts) 
 
 
main() 

我尝试查看有关类(class)的教程和文档,但我一无所获。任何帮助将不胜感激,谢谢。

请您参考如下方法:

首先,它需要初始化,所以放一个 __init__ 函数。

class Contact: 
    def __init__(self, first_name, last_name, phone_number): # Arguments. self is always needed. 
        self.first_name = first_name 
        self.last_name = last_name 
        self.phone_number = phone_number 

那么这个类就有了三个变量。 其次,它需要变成一个字符串。

class Contact: 
    def __init__(self, first_name, last_name, phone_number): # Arguments. self is always needed. 
        self.first_name = first_name 
        self.last_name = last_name 
        self.phone_number = phone_number 
 
    def __str__(self): 
        return "%s %s \t %s" % (self.first_name, self.last_name, self.phone_number) 

你的代码中有一个set_first_name函数,所以做一个

class Contact: 
    def __init__(self, first_name, last_name, phone_number): # Arguments. self is always needed. 
        self.first_name = first_name 
        self.last_name = last_name 
        self.phone_number = phone_number 
 
    def __str__(self): 
        return "%s %s \t %s" % (self.first_name, self.last_name, self.phone_number) 
 
    def set_first_name(self, first_name): 
        self.first_name = first_name 

最后,您的代码中有一个 set_title 函数

class Contact: 
    def __init__(self, first_name, last_name, phone_number): # Arguments. self is always needed. 
        self.first_name = first_name 
        self.last_name = last_name 
        self.phone_number = phone_number 
        self.title = None 
 
    def __str__(self): 
        if self.title is None: 
            return "%s %s \t %s" % (self.first_name, self.last_name, self.phone_number) 
        else: 
            return "%s %s %s \t %s" % (self.title, self.first_name, self.last_name, self.phone_number) 
 
    def set_first_name(self, first_name): 
        self.first_name = first_name 
 
    def set_title(self, title): 
        self.title = title