标签:int 方法 直接 student 对象 stat 外部 私有 pass
语法
class 类名:
pass
类名由一个或多个字母组成,首字母大写,其他字母小写。
直接写在类里的变量,成为类属性。
在类里定义的函数,成为类方法。
class Student:
name = ‘张三‘ # 类属性
def eat(self): # 实例方法
print(self.name + ‘在吃饭‘)
使用@staticmethod
注解来定义静态方法。
@staticmethod # 静态方法
def drink():
print(‘在喝水‘)
使用@classmethod
注解来定义类方法
@classmethod
def study(cls):
print(‘在学习‘)
初始化函数
def __init__(self, name, age):
self.name = name
self.age = age # 实例属性
语法:实例名 = 类名([参数])
class Student:
childhood_name = ‘张三‘ # 类属性
def __init__(self, name, age):
self.name = name
self.age = age # 实例属性
def eat(self): # 方法
print(self.name + ‘在吃饭‘)
@staticmethod
def drink():
print(‘在喝水‘)
@classmethod
def study(cls):
print(‘在学习‘)
stu = Student(‘xyq‘, 20)
print(stu.name)
print(stu.childhood_name)
print(stu.age)
####
xyq
张三
20
方法的调用
stu = Student(‘xyq‘, 20)
stu.eat()
Student.eat(stu)
####
xyq在吃饭
xyq在吃饭
相当于类中的静态变量,使用类名.属性名
来调用。
print(Student.childhood_name)
####
张三
使用类名.方法名()
来调用。参数是类名
Student.study()
####
在学习
使用类名.方法名()
来调用,没有参数。
Student.drink()
####
在喝水
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print(self.name + ‘在吃饭‘)
stu1 = Student(‘shy‘, 21)
stu2 = Student(‘xyq‘, 20)
stu2.gender = ‘男‘ # 为stu2动态绑定属性
print(stu1.name, stu1.age)
print(stu2.name, stu2.age, stu2.gender)
def show():
print(‘这是函数,即将绑定在类上‘)
stu2.show = show
stu2.show()
####
shy 21
xyq 20 男
这是函数,即将绑定在类上
封装、继承、多态
私有变量约定用__变量
来表示
class Student:
def __init__(self, name, age):
self.name = name
self.__age = age # __age为私有变量,不希望外部访问
def show(self):
print(self.name + f‘今年{self.__age}岁‘)
stu = Student(‘xyq‘, 20)
stu.show()
####
xyq今年20岁
默认继承Object,支持多继承。
子类必须调用父类的构造方法。
语法:
class 子类(父类1,父类2,...,父类n)
pass
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
print(‘Person类的构造函数‘)
def info(self):
print(self.name, self.age)
class Student(Person):
def __init__(self, name, age, score):
super().__init__(name, age)
self.score = score
print(‘Student类的构造函数‘)
Jack = Student(‘Jack‘, 17, 89)
Jack.info() # 继承来的方法
####
Person类的构造函数
Student类的构造函数
Jack 17
子类可以重写父类中的方法,重写后可以使用super().方法()
来调用。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def info(self):
print(self.name, self.age)
class Student(Person):
def __init__(self, name, age, score):
super().__init__(name, age)
self.score = score
def info(self):
print(self.name, self.age, self.score)
Jack = Student(‘Jack‘, 17, 89)
Jack.info()
####
Jack 17 89
是所有类的父类
标签:int 方法 直接 student 对象 stat 外部 私有 pass
原文地址:https://www.cnblogs.com/xieyuquan/p/14381435.html