python_面向对象

面向对象基本格式:

# 定义一个类:Account
class Account:
    # 类中的方法
    def login(self):
        print('登录')
    def logout(self,name):
        print('注销',name)
        return 123

# 调用类中的方法
# 1.创建对象
x = Account() #创建一个Acount类的对象
# 2.使用对象调用类中的方法
x.login()
y = x.logout('wdc')#可以传递参数和接收返回值
print(y)

  应用场景:遇到很多函数,需要给函数进行归类和划分。【封装】

对象的作用:

  存储一些值,以后方便自己使用。

class Person:
    def show(self):
        print(self.name)

p1 = Person()
p1.name = 'wdc'

p1.show()

p2 = Person()
p2.name = 'yhf'

p2.show()

类的初始化方法:

  将数据封装到对象,方便我们使用。

class Person:
    def __init__(self,name,age,gender):# 初始化方法:给对象内部数据初始化。
     #将传进来的参数赋值给对象中的变量。和实例绑定。 self.name = name self.age = age self.gender = gender def show(self): temp = '姓名:{},年龄:{},性别:{}'.format(self.name,self.age,self.gender) print(temp) # 类()实例化对象,自动执行此类中的 __init__方法。 p1 = Person('王佃超','22','') p1.show() p2 = Person('尹洪飞','23','') p2.show()

继承:

# 父类
class Base:
    def f1(self):
        pass
# 子类
class Foo(Base):
    def f2(self):
        pass

# 创建一个子类对象
obj1 = Foo()
# 执行对象.方法时,优先在自己的类中找,如果没有就去父类中找。
obj1.f2() #执行自己的方法
obj1.f1() #执行父类中的方法

# 创建一个父类对象
obj2 = Base()
# 只能执行自己的类中的方法,不能执行子类中的方法。
obj2.f1()

  问题:什么时候才能用到继承?

    多个类中如果有公共的方法,可以放到父类中避免重复编写。

静态方法和类方法(特殊的静态方法)

class Dog:
    # 静态方法
    @staticmethod
    def f1(name,age):
        print('...')
        print(name,age)
    # 类方法,至少有一个参数cls。
    @classmethod
    def f2(cls):
        print(cls)
# 静态方法是由类来调用执行
Dog.f1('wdc',123)
# 类方法不用传递参数,自动将类名传递进去
Dog.f2()

  静态方法就等于python中的函数。

原文地址:https://www.cnblogs.com/wangdianchao/p/11643784.html