对象是一个抽象概念,表示任意存在的事物。通常把对象划分为两个部分,即静态部分与动态部分。静态部分被称为“属性”,任何对象都具备自身属性,这些属性不仅是客观存在的,而且是不能被忽视的。
封装是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类,类通常会对客户隐藏其实现细节,这就是封装的核心思想。 eg:
#属性 class Student: name="小红" age=18 weight=45 height=163 #方法 def idol(a): print("她的爱豆是xxx") def banji(a): print("她的班级是3班") b=Student() print(b) print(type(b)) print(b.__class__) print(b.__class__.name) print(b.__class__.age) print(b.__class__.weight) print(b.__class__.height) b.idol() b.banji()继承是实现重复利用的重要手段,子类通过继承复用父类的属性和行为的同时,又添加了子类特有的属性和行为。 eg:
class Student(list): pass >>> lst=Student(["小明","小花","小芳","小溪"]) >>> lst.append("小华") >>> lst.sort() >>> print(lst)将父类对象应用于子类的特征就是多态。子类继承父类特征的同时,也具备了自己的特征,并且能够实现不同的效果,这就是多态化的结构。 eg:
class Child: def Name(a): raise AttributeError >>> class One: def Name(a): print("第一个孩子叫A") >>> class Two: def Name(a): print("第二个孩子叫B") >>> def func(child): child.Name() >>> func(One())Python中的self相当于C++中的this指针 类的方法与普通的函数只有一个特别的区别 —— 它们必须有一个额外的第一个参数名称(对应于该实例,即该对象本身),按照惯例它的名称是 self。在调用方法时,我们无需明确提供与参数 self 相对应的参数。 eg:
class Student: def work(self,a): self.a=a >>> class Student: def work(self,a): self.a=a def aim(self): print("学生的主要任务是%s,目的是生活得更好"%self.a) >>> b=Student() >>> b.work("学习") >>> c=Student() >>> c.work("努力学习") >>> >>> b.aim() >>> c.aim()类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。在Python中,类是一种抽象概念,可以定义每个对象共有的属性和方法。
在Python中,类的定义使用class关键字来实现。 语法格式:
class ClassName: '''类的帮助信息''' #类文档字符串 statement #类体参数说明: ClassName:用于指定类名,一般使用大写字母开头,如果类名中包括两个单词,第二个单词的首字母也要大写,这种命名方法也称为“驼峰式命名法”,这是惯例。当然也可以根据自己的习惯命名,但是一般推荐按照惯例来命名。 ‘’‘类的帮助信息’’’:用于指定类的文档字符串,定义该字符串后,在创建类的对象时,输入类名和左侧的括号“(”后,将显示该信息。 statement:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,也可以在类体中直接使用pass语句代替。 eg:
class Student: '''学生类''' pass定义完类之后,并不会真正创建一个实例,class语句本身并不创建类的任何实例,所以在类定义完成之后,可以创建类的实例,即实例化类的对象。 语法格式:ClassName(parameterlist) 参数说明: ClassName:必选参数,用于指定具体的类; parameterlist:可选参数,当创建一个类时,没有创建—inint—()方法,或者—init()方法只有一个self参数时,parameterlist可以省略。 eg:
class Student: '''学生类''' pass wildStudent=Student() #创建学生实例 print(wildStudent)在创建类后,类通常会自动创建一个–init–()方法,该方法是一个特殊的方法,类似于Java语言中的构造方法。每当创建一个类的新实例时,Python都会自动执行它。–init–()方法必须包含一个self参数,并且必须是第一个参数。self参数是一个指向实例本身的引用,用于访问类中的属性和方法。在方法调用时会自动传递实际参数self。因此,当–init–()方法只有一个参数时,在创建类的实例时,就不需要指定实际参数了。 eg:
class Student: '''学生类''' def _init_(self): print("学生类") >>> wildStudent=Student() >#结果:学生类类的成员主要是由实例方法和数据成员组成。在类中创建了类的成员后,可以通过类的实例进行访问。
所谓实例方法是指在类中定义的函数,该函数是一种在类的实例上操作的函数。与_init_()方法一样,实例方法的第一个参数必须是self,并且必须包含一个self参数。 语法格式:
def functionName(self,parameterlist): block参数说明: functionName:用于指定方法名,一般使用小写字母开头; self:必要参数,表示类的实例,其名称可以是self以外的单词,使用self只是一个惯例而已; parameterlist:用于指定除self参数以外的参数,各参数间使用逗号“,”进行分隔; block:方法体,实现具体功能 实例方法创建完后,可以通过类的实例名称和点“.”操作符进行访问
语法格式:instanceName.functionName(parametervalue) 其中,instanceName是类的实例名称,functionName为要调用的方法名称,parametervalue表示为方法指定对应的实际参数,其值的个数为parameterlist的个数-1.
数据成员时指在类中定义的变量,即属性,根据定义位置,可分为类属性和实例属性
是指定义在类中,并且在函数体外的属性。类属性可以在类的所有实例之间共享值,也就是在所有实例化的对象中公用。 eg:
class Student: '''学生类''' work="学习" aim="取得好成绩" win="实现自己的人生理想" >>> def _init_(self): print("学生类:") print(Student.work) print(Student.aim) print(Student.win) #运行结果: 学生类: 学习 取的好成绩 实现自己的人生理想是指定义在类的方法中的属性,只作用于当前实例中。eg:
class Student: '''学生类''' def _init_(self): self.work="学习" self.aim="取得好成绩" self.win="实现自己的人生理想" print("学生类:") print(Student.work) print(Student.aim) print(Student.win) #运行结果: 学生类: 学习 取的好成绩 实现自己的人生理想以上就是我整理的task10的全部内容,感谢你的浏览。
