520对象都没得?那就来学下Python类与对象

Python中一切皆对象,所以很有必要了解一下类和对象的概念。

类可以看成是抽象的模板,比如:智能手机。对象就是根据这个模板制造出来的实物,比如iPhone ,华为,小米,OPPO等各种品牌的智能手机。

类定义

类包含属性和方法,描述具有共同属性和行为的一类事物。

通过 class 关键字定义类,驼峰命名,类名首字母大写,见名知意。

下面定义一个简单的 Students 类


 
#定义类

class Students:

#类属性

people="students"

#带self的叫实例方法

def study(self):

print("学生要学习")
加python学习qq群:775690737  送python零基础入门学习资料+99个源码

类属性和实例方法的调用


 
#打印类属性

print(Students.people)

#创建实例化对象

Alice=Students()

#实例访问类属性

print(Alice.people)



#访问实例方法study

Alice.study()

Students().study().
加python学习qq群:775690737  送python零基础入门学习资料+99个源码

实例属性

实例属性通过实例变量,或者在初始化方法中通过 self 变量绑定。


 
class StudentNew():

def __init__(self, name):#初始化函数,属于实例方法

self.name = name



s=StudentNew("小明")

s.age=10

#打印实例属性

print(s.name,s.age)

#修改实例属性

s.name="小林"
加python学习qq群:775690737  送python零基础入门学习资料+99个源码

继承

继承的好处是:子类获得了父类的全部属性和方法。

创建一个高中生类,继承 Students 类。


 
class Senior(Students):

pass


#打印类属性

print(Senior.people)

#调用study方法

Senior().study()

子类重写父类的方法


class Senior(Students):

who = "高中生"

def study(self):

print("高中生要学习")



print(Senior.people)

Senior().study()
加python学习qq群:775690737  送python零基础入门学习资料+99个源码

类方法和静态方法

下面重新创建一个 Students 类。


 
class Students:

people="学生"



#初始化方法

def __init__(self,name):

self.name=name



def study(self):

print("{}{}要学习".format(self.people,self.name))



#静态方法

@staticmethod

def write(homework):

print("{}作业该写了".format(homework))



#类方法

@classmethod

def play(cls):

print("{}也要出去玩".format(cls.people))
加python学习qq群:775690737  送python零基础入门学习资料+99个源码

实例方法,静态方法,类方法的区别:

1.定义区别

实例方法,第一个参数必须是 self ,表示实例化对象本身。

类方法,使用装饰器@classmethod标识,第一个参数必须是 cls ,表示类对象

静态方法,使用修饰器@staticmethod标识,不需要定义特殊参数

2.访问权限

实例方法可以使用类属性和实例属性。

类方法可以使用类属性,不能使用实例属性。

静态方法不能使用类或实例的任何属性和方法。

3.三者的调用的区别

调用实例方法必须先实例化对象


 
s=Students("小明")

s.study()

静态方法,类方法可以使用实例对象和类对象(类名)去访问


s.write("语文")

Students.write("语文")

s.play()

Students.play()
加python学习qq群:775690737  送python零基础入门学习资料+99个源码

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章