python 类 对象
Python 是一种面向对象的编程语言。
Python 中的几乎所有东西都是对象,拥有属性和方法。
类(Class)类似对象构造函数,或者是用于创建对象的“蓝图”。
#创建类 class Myclass: x=4 #实例 创建一个名为 p1 的对象,并打印 x 的值: p1=Myclass() print(p1.x)#4 print(p1 is Myclass)#False # __init__()函数 注释:每次使用类创建新对象时,都会自动调用 __init__() 函数。 ''' 要理解类的含义,我们必须先了解内置的 __init__() 函数。 所有类都有一个名为 __init__() 的函数,它始终在启动类时执行。 使用 __init__() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作: ''' #实例 #创建名为 Person 的类,使用 __init__() 函数为 name 和 age 赋值: class Person: def __init__(self,name,age): self.name=name self.age=age p2=Person('hello',55) print(p2.name)#hello print(p2.age)#55 #对象方法 class Animal: def __init__(self,name,age): self.name=name self.age=age #self 参数是对类的当前实例的引用,用于访问属于该类的变量。 def my_function(self): print('hello world '+self.name) p3=Animal('miaomiao',100) p3.my_function()#hello world miaomiao #self参数 #self 参数是对类的当前实例的引用 用于方位属于该类的变量 #它不必被命名为 self,您可以随意调用它,但它必须是类中任意函数的首个参数: class Animal1: def __init__(this,name,age): this.name=name this.age=age def my_function(this): print(this.name) p4=Animal1('bill',65) p4.my_function()#bill #修改属性 p4.name='wanglaowu' print(p4.name)#wanglaowu #del 关键字 删除对象属性 del p4.name #del 关键字 删除对象 del p4 #pass 语句 #类定义不能为空,但是如果您处于某种原因写了无内容的类定义语句,请使用 pass 语句来避免错误。 class Dog: pass
Python 继承
继承允许我们定义继承另一个类的所有方法和属性的类。
父类是继承的类,也称为基类。
子类是从另一个类继承的类,也称为派生类。
#继承 #创建一个Person的类 class Person: def __init__(self,name,age): self.name=name self.age=age def my_function(self): print('my name is'+self.name+'i am '+self.age) #创建一个名为 Student 的类,它将从 Person 类继承属性和方法: #如果您不想向该类添加任何其他属性或方法,请使用 pass 关键字。 #现在,Student 类拥有与 Person 类相同的属性和方法。 class Student(Person): pass #实例 x=Student('walaowu','18') x.my_function() #添加 __init__() 函数 #到目前为止,我们已经创建了一个子类,它继承了父类的属性和方法。 #注释:每次使用类创建新对象时,都会自动调用 __init__() 函数。 class Animal(Person): #子的 __init__() 函数会覆盖对父的 __init__() 函数的继承。 #如需保持父的 __init__() 函数的继承,请添加对父的 __init__函数 def __init__(self,name,age,year,month): Person.__init__(self,name,age) self.year=year self.month=month E=Animal('zhangsan','18','2021','8') E.my_function() #使用super()函数 ,它会使子类从其父继承所有方法和属性: class AnimalOne(Person): def __init__(self,name,age): #通过使用 super() 函数,您不必使用父元素的名称,它将自动从其父元素继承方法和属性。 super().__init__(name,age) F=AnimalOne('panghu','18') F.my_function()#my name ispanghui am 18 #如果您在子类中添加一个与父类中的函数同名的方法,则将覆盖父方法的继承。