python类

Python类的定义与实例化

定义类

Python中,使用class关键字定义类,定义类的语法如下:class类名:
语句…
类名通常以大写字母开头,定义一个Person类,我们可以这样写:

class Person:
	pass

pass语句

类定义不能为空,但是如果您处于某种原因写了无内容的类定义语句,可以
pass语句避免错误

类实例化

定义了类之后,就可以对类进行实例化,即把抽象的类赋予实物的过程。比如,定义好Person这个类后,就可以实例化多个Person对象。
创建实例使用:类名(),如下:

lili = Person()

实例属性

实例属性是隶属于具体对象的属性,用于描述具体的对象。示例代码如下:

# 定义Person类
class Person:
    pass

# 创建对象
lili = Person()
lili.name = "丽丽" #设置对象lili的属性name,该属性为实例属性
lili.age = 19
print("name:{}, age:{}".format(lili.name, lili.age))

打印对象lili的name属性、age属性,程序运行输出如下:

name: 丽丽,age: 19

类属性

类属性是隶属于类的属性,用于描述类的特征。在Python中,类属性在类中的定义如下:

class 类名:
    类属性 = 值

定义类属性可以直接在class中定义,比如在前面的Person类中,加入学校的类属性:

class Person:
    school = "清华大学"

在上面的代码中,school就是属于Person这个类的类属性,此后,通过Person类实例化的所有对象,都可以访问到school,并且得到唯一的结果。

lili = Person()
print(lili.school)  # ==> 清华大学

类属性,也可以通过类名直接访问

print(Person.school) # ==> 清华大学

Python实例方法

实例方法指的就是在类中定义的函数,语法如下:

class 类: 
	def 实例方法(self): 
	self.属性

实例方法的第一个参数永远都是self,指向调用该方法的实例对象本身,除此以外,其他参数和普通函数是完全一样的,示例代码如下:

class Person:
    school = "清华大学"
    def __init__(self, my_name):
        self.name = my_name
    def get_name(self):
        print("name:{}".format(self.name))

lili = Person("丽丽")
lili.get_name()

类中定义了一个方法_init_,该方法被称为构造方法,每次使用类创建新对象时,都会自动调用init()函数。lili= Person(“丽丽"):创建Person实例,init()函数为name赋值。
类中定义的get_name方法,就是实例方法,在实例方法中通过"self.属性"访问类中的变量。程序运行结果如下:

name:丽丽

类的继承

在面向对象的程序设计中,定义一个新类的时候,可以从某个现有的类继承,新定义的类称为子类,而被继承的类称为基类、父类或超类。
定义父类Person类

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    def about_me(self):
        print("我叫{}, 今年{}岁".format(self.name, self.age))

定义子类Student类,继承Person类

class Student(Person):
    def __init__(self, name, age, course):
        self.name = name
        self.age = age
        self.course = course

    def my_course(self):
        print("我正在学习{}".format(self.course))
student = Student("丽丽", 18, "Python")
student.about_me()
student.my_course()

Student(Person),定义子类Student,继承Person类
子类继承父类的属性和方法,所以Student类自动拥有Person类的name、age属性、 about_me方法,程序运行结果如下:

我叫丽丽, 我今年18岁
我正在学习Python

OK,到底为止python基础学习告一段落,开始新的python学习!