Python3 object-oriented (personal summary)

Summary: Object-oriented programming (OOP), it is a programming idea. OOP object as the basic unit of the program, an object contains function data and operational data. Object-oriented main features are: encapsulation, inheritance, polymorphism

A class definition:

class ClassName(基类)"""类相关描述"""
	# 定义实例变量、方法

Access II instance attributes Method

People define classes, inheritance object class that have attributes: name, age, sex

class People(object):

    def __init__(self, name, age, sex):
        self.__name = name
        self.__age = age
        self.__sex = sex

NOTE: __ init__ constructor method, the first parameter python example of a method of self keyword class, the representative instance itself. Class attribute defines a double underscore (__) at the beginning, represents private property, outside inaccessible.

Properties can be accessed, set accessed via the Java-like language get, such as:

class People(object):

    def __init__(self, name, age, sex):
        self.__name = name
        self.__age = age
        self.__sex = sex
    
    def get_name(self):
        return self.__name
    
    def set_name(self, name):
        self.__name = name
        
    def get_age(self):
        return self.__age
    
    def set_age(self, age):
        self.__age = age
        
    def get_sex(self):
        return self.__sex
    
    def set_sex(self, sex):
        self.__sex = sex

You may also be defined by a decorative special methods, such as:

class People(object):

    def __init__(self, name, age, sex):
        self.__name = name
        self.__age = age
        self.__sex = sex

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self, name):
        self.__name = name

    @property
    def age(self):
        return self.__age

    @age.setter
    def age(self, age):
        self.__age = age

    @property
    def sex(self):
        return self.__sex

    @sex.setter
    def sex(self, sex):
        self.__sex = sex
       
    def say_hello(self):
        print("My name is {}, I am {} years old, I am {}".format(self.__name, self.__age, self.__sex))

    def __dict__(self):
        return {"name": self.name, "age": self.age, "sex": self.sex}
if __name__ == "__main__":
    people = People("wangwu", 18, 'boy')
    print(people.get_name(), end=" ")
    people.set_name("lisi")
    print(people.get_name())

    people1 = People("wangwu", 18, 'boy')
    print(people1.name, end=" ")
    people1.name = "lisi"
    print(people1.name)

Both the same output:

wangwu   lisi
wangwu   lisi

Third, inherit
inheritance can get all the properties and methods of the parent class, multiple inheritance can be passed

class ClassName(基类1,基类2)"""类相关描述"""
	# 定义实例变量、方法

Example: Writing student class, inherits all non-private properties of the parent class of class People

class Student(People):

    def __init__(self, name, age, sex, grade, score):
    	# 调用父类的构造函数
        People.__init__(self, name, age, sex)
        self.__grade = grade
        self.__score = score

    @property
    def grade(self):
        return self.__grade

    @grade.setter
    def grade(self, grade):
        self.__grade = grade

    @property
    def score(self):
        return self.__score

    @score.setter
    def score(self, score):
        self.__score = score

	def say_hello(self):
		# 调用父类方法
        super().say_hello()
        print("My grade is {}, My score is {}".format(self.grade, self.score))
    
    def __dict__(self):
    	# 通过get、set方法可以访问父类私有属性
        return {"name": self.name, "age": self.age, "sex": self.sex, "grade": self.grade, "score": self.score}
Published 40 original articles · won praise 31 · views 620 000 +

Guess you like

Origin blog.csdn.net/weixin_38422258/article/details/104372554