如果想之后用点调用对象的一个属性name,要用self.name写在类里。
父类属性名字前面加两个下划线可以防止该属性被子类继承。
class Animal:
burudongwu = True
def __init__(self, name):
self.__name = name
def eat(self):
print(‘Animal的吃’)
dog = Dog()
dog.eat()
print(dog.__name) #报错
print(Animal.burudongwu) # 打印True
a1 = Animal(‘旺财’)
a2 = Animal(‘小白’)
print(a1.burudongwu) # 打印True
burudongwu = False # 在外面改类的属性
print(a2.burudongwu) # 打印False
装饰器@classmethod放在类里的函数前,能把对象的函数变成类的函数。
装饰器的本质就是一个函数,把被装饰的函数当成参数。
1. 基础类定义和实例化
# 定义一个名为Person的类
class Person:
def __init__(self, name, age): # 构造函数
self.name = name # 实例变量
self.age = age
# 实例化Person类
xiaoming = Person('小明', 18)
print(xiaoming.name) # 输出:小明
print(xiaoming.age) # 输出:18
2. 类中的方法
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self): # 实例方法
print(f'{self.name} 说:你好!')
xiaoming = Person('小明', 18)
xiaoming.say_hello() # 输出:小明 说:你好!
3. 类变量和实例变量
class School:
students = 0 # 类变量
def __init__(self, name):
self.name = name # 实例变量
def add_student(self):
School.students += 1 # 增加类变量的值
school = School('月之暗面学校')
school.add_student()
print(School.students) # 输出:1
4. 继承
# 定义一个基础类
class Animal:
def eat(self):
print('动物吃东西')
# 定义一个继承自Animal的类
class Dog(Animal):
def bark(self):
print('狗叫')
dog = Dog()
dog.eat() # 继承自Animal的方法
dog.bark() # Dog类特有的方法
5. 静态方法和类方法
class Math:
@staticmethod
def add(x, y):
return x + y
@classmethod
def multiply(cls, x, y):
return x * y
# 静态方法不需要类或实例的引用
print(Math.add(1, 2)) # 输出:3
# 类方法需要类的引用
print(Math.multiply(3, 4)) # 输出:12

被折叠的 条评论
为什么被折叠?



