笔记-类

1.类
import sys

class student:
    def __init__(self,name,id,score,level):
        self.name = name
        self.id = id
        self.score = score
        self.level = level

    def printout(self):
        print(f"{self.name}'s student number is {self.id}, and his grade is {self.score}. He submitted {len(self.level)} assignments, each with a grade of {' '.join(self.level)}")

name = input()
id = input()
score = input()

level = list(input().split())

xx= student(name,id,score,level)
xx.printout()

self 代表的是调用这个方法的那个具体实例。
在方法内部,通过 self 可以访问这个实例的属性(变量)和其他方法。
你不需要在调用方法时传入 self,Python 会自动把调用该方法的对象传给它。

2.类属性和实例属性

同名时,实例属性 会遮蔽 类属性:
a.species = "Custom Species"
print(a.species)  # 输出: Custom Species(只影响 a)
print(b.species)  # 输出: New Species(类属性还在)

同一个类,每个实例的属性个数可以不一样,可以手动单独对每个类的实例增加一些属性

如何查看属性:

vars(instance) 查看实例属性
vars(Class) 或 Class.__dict__ 查看类属性
dir(obj) 查看全部(包括继承的)

3.实例化Employee类并进行属性判断

e = Employee(name, salary)
if hasattr(e, 'age'):
    e.printclass()
else:
    print("False")
    setattr(e, 'age', age)
    e.printclass()

4.hasatrr 使用example
class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print("Woof!")

dog = Dog("Buddy")

print(hasattr(dog, "name"))      # True
print(hasattr(dog, "age"))       # False
print(hasattr(dog, "bark"))      # True
print(hasattr(dog, "bark()"))    # False(不能加括号)

4.python里在类里设置函数的时候,也可以调用同一个类或者不同类来作为参数
全部评论

相关推荐

一面052350min1.自我介绍2.在学校里的经历3.你希望测试开发岗位里的测试工作和开发工作占比是多少?4.实习拷打,详细拷打实习中做过的接口自动化项目5.为什么接口自动化项目选择pytest?6.设计测试用例会考虑哪些点?7.用过jekins的什么功能,了解过它底层的实现吗8.技术栈是?熟悉的编程语言?9.口述思路:二叉树的遍历10.手撕:二分查找11.浏览器输入url到展示页面的全流程?12.进程和线程13.死锁14.慢查询15.读过有关测试的技术书籍吗16.写测试自动化时用过python的哪些库?17.反问(作业帮直播业务,给学生直播上课之类的) 二面052755min1.自我介绍2...
一笑而过2222:1. String和StringBuffer区别:String是不可变、线程安全(因不可变特性)的,每次操作会创建新对象,适合只读场景;StringBuffer是可变、线程安全(方法加锁)的,可直接修改对象,适用于多线程环境下频繁修改字符串的场景 。 2. Java的垃圾回收器:Java垃圾回收器是JVM自动管理内存的组件,基于分代收集理论,通过标记-清除、复制、标记-整理等算法回收不再使用的对象,常见类型有Serial、Parallel、CMS、G1等,分别适用于不同性能需求场景。 3. Java的序列化:Java序列化是将对象转换为字节序列以便存储或传输的机制,对象所属类需实现Serializable接口,反序列化可将字节流恢复为对象,常用于分布式通信、数据持久化和对象深拷贝等场景。
查看24道真题和解析 面经...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务