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
View Code

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
#如果您在子类中添加一个与父类中的函数同名的方法,则将覆盖父方法的继承。
View Code
原文地址:https://www.cnblogs.com/lvlisn/p/15123384.html