类定义和实例化


以下是一个示例:

import hashlib

class User:
    # 类成员变量(公开)
    name = ""
    age = 0
    city = ""

    # 类成员变量(私有)
    __password = ""

    # 构造函数
    def __init__(self, name, age, city):
        self.name = name
        self.age = age
        self.city = city

    # 类成员方法(公开)
    def set_passoword(self, passoword):
        self.__password = self.__encode_md5(passoword)

    def get_password(self):
        return self.__password

    # 类成员方法(私有)
    def __encode_md5(self,password):
        hash = hashlib.md5()
        hash.update(password.encode("utf-8"))
        return hash.hexdigest()

    # 打印方法,同 __repr__(),类似于 Java Object 的 toString() 方法
    def __str__(self):
        return "user:[name=%s ,age=%d, city=%s]" % (self.name, self.age, self.city)

# 实例化对象
user = User("assad", 20, "Guangzhou")
print(user)             # 输出: user:[name=assad ,age=20, city=Guangzhou]

# 访问类成员变量
print(user.name)        # 输出: assad
print(user.age)         # 输出: 20

# 调用类成员方法
user.set_passoword("2333")
print(user.get_password())   #输出:f7e0b956540676a129760a3eae309294

类的专有方法

init: 构造函数,在生成对象时调用 del: 析构函数,释放对象时使用 repr : 打印,转换 str: 同上 setitem : 按照索引赋值 getitem: 按照索引获取值 len: 获得长度 cmp: 比较运算 call: 函数调用 add: 加运算 sub: 减运算 mul: 乘运算 div: 除运算 mod: 求余运算 pow: 乘方

运算符重载