面向对象

2019-09-25  本文已影响0人  快去学习不然怎么去看aimer
class foo():
    city = "beijing"
    def __init__ (self,name):
        self.name = name
    def run(self):
        print(f"{self.name} is running")
shark = foo(shark)
shark.run()
shark.city

[root@.....] # ....
shark is running 
beijing

这就是一个简单的类。在类里定义的函数都叫做方法
其中,init方法不是必须的,其作用为将下面的方法绑定到传入的对象上,以方便调用
因此,方法内的参数包括self时,该方法称为绑定方法。

类内包含三种属性,"city"类的数据属性,"run"类的函数属性,"name"类的实体化对象的数据属性
@classmethod
    def class_method(cls):
        """
        类方法, cls 就是类 -》 调用此方法的类
        :return:
        """
        pass

@staticmethod
    def statict_method():
        """
        本质上就是一个普通函数而已,只不过是在类里面定义了
        :return:
        """
        pass

str

class Person:
    def __init__(self, name):
        self.name = name
        
    def __str__(self):
        return "{}".format(self.name)
p = Person('shark')

print(p)
# shark

继承

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def run(self):
        print(f'{self.name} is running')
        
        
class Teacher(Person):
    pass

t = Teacher('shark', '18')
t.run()

当然,多层继承时,子类同样也可以继承"父类的父类的方法",同样的,一个子类可同时继承多个父类的方法。

Ps:

class Foo():
    city  = 'beijing'
    def __init__(self,name):
        self.name = name
    def run(self):
        print(f'{self.name} is running')
class Teacher(Foo):
    def talk(self):
        print(f'{self.name}  is  talk')

qige = Teacher("qige")
qige.run()
qige.talk()
print(f"{qige.name} is {qige.city}")

some = Foo("some")
some.run()

class Student(Teacher):
    pass

rourou = Student("rourou")
rourou.run() 

上一篇 下一篇

猜你喜欢

热点阅读