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学习!