关于python 类的小例子(简单易懂的知识点)

本文深入探讨Python中类与对象的基本概念,包括类内变量、函数的定义与使用,实例化过程,以及如何正确调用类内外部参数。同时,文章提供了跨文件调用类的示例,并列举了常见错误及其解决办法。

小白整理知识点:

1. 类内变量:public可访问,private(__双下划线)不可访问

2. 类内函数:def语句,分有参、无参两种,而且要注意参数不能是self.x格式的

3. 变量的调用:类内公共变量可直接访问(如x.a),还可以用于其他def函数中,但是调用时要加前缀self

4. 外部传入参数的调用:同3,可直接访问(如x.x1),可以用于其他def函数中,调用时要加前缀self

5.类的实例化:分无参和有参,前者load(),后者load(1,2,3)

class load():
    a = 1
    b = 100
    __abc = 2  #不可访问

    def __init__(self, x1, x2, x3):  # 类的外部参数,注意__前后均有,这里错了会导致实例化报错
        self.x1 = x1
        self.x2 = x2
        self.x3 = x3

    def pr(self):            # 没有参数
        print('hello')

    def myadd(self, k):      # 带参数,但是这个参数不能为self.x这类
        return k + self.a    # 接上行,self.x可以出现在函数内部,类内全局变量调用需加前缀self

    def myfun(self, x):
        out1 = x + self.x1   # 类外传入参数的调用同类内全局变量的调用,前缀加self
        return out1
    
    def  myfun2(self, x):
        out2 = self.myfun(x)  # 类内函数调用,既非调用myfun(),也不是load.myfun(),而是加前缀
        return out2           # self.myfun()调用,和变量调用是相同的模式

x = load(1, 2, 3)       # 带参数的实例化
print(x.a)
print(x.myadd(111))     # 注意不要写成load.myadd(),因为没注意导致报错了
print(x.myfun(9))
print(x.myfun2(100))    # 函数调用

6. 跨文件的调用

# 保存在classTest.py
class load8760():
    a = 1
    b = 100
    __abc = 2

    def __init__(self, x1, x2, x3):
        self.x1 = x1
        self.x2 = x2
        self.x3 = x3

    def pr(self):
        print('hello')

    def myadd(self, k):
        return k + self.a

    def myfun(self, x):
        out1 = x + self.x1
        return out1

    def myfun2(self, x):
        out2 = self.myfun(x)
        return out2

调用示范:

# 保存在classMain.py文件中
import classTest

t = classTest.load8760(10, 11, 12)  # 注意实例化的同时要传入参数
t.pr()                 # 不带参数的函数调用
print(t.myfun(2))      # 带参数的函数调用

7. 几点容易出错的点:

  (1) __init__后面的双下划线不要忘记,否则会一直报错

       

(2)带参数的类,在实例化的时候,记得同时传入参数,否则报错,缺少参数

        

(3)写成类的时候,调用外部变量和def函数都要加self.xx

 

 

 

 

<think>好的,我现在需要处理用户关于Python全面知识点和示例代码的请求。首先,用户希望得到全面的知识点,这意味着要涵盖Python的基础语法、数据结构、面向对象编程、函数、模块、异常处理、文件操作、高级特性、常用库以及性能优化等方面。同时,每个部分都需要示例代码,这需要我逐一整理并确保代码正确。 接下来,我要检查用户提供的引用内容,看看有哪些可以直接利用的信息。引用1和2提到了面向对象的继承,引用3提到了字符串的split方法,引用4详细介绍了性能优化方法,引用5提到了元组。这些内容可以作为知识点的一部分,但用户需要的是全面的内容,所以还需要补充其他部分。 我需要先构建一个知识框架,确保覆盖Python的主要方面。例如,基础语法部分应包括变量、数据型、运算符和控制结构。数据结构部分需要包含列表、元组、字典、集合等。面向对象编程需要、继承、多态等内容。函数部分包括定义、参数传递、lambda表达式。模块和包的使用,异常处理机制,文件操作,高级特性如生成器、装饰器,常用库如requests、numpy,以及性能优化技巧。 接下来,每个知识点需要简洁的解释和示例代码。例如,变量和数据型可以展示整数、字符串、列表的赋值和使用。运算符部分举例算术和比较运算。控制结构如if语句和循环的示例。面向对象部分展示的定义和继承,参考引用1和2的例子。 在数据结构部分,元组的示例可以参考引用5,列表推导式可以引用4中的性能优化建议。字符串处理部分可以使用引用3的split方法示例。函数部分可以展示参数传递和lambda表达式。模块部分需要说明如何导入和使用。异常处理展示try-except块。文件操作包括读写文件。高级特性如生成器和装饰器的代码示例。常用库可以给出requests和numpy的简单例子。性能优化部分整理引用4中的建议,如使用列表推导式、局部变量、内建函数等。 需要确保所有代码示例语法正确,符合Python规范,并且注释清晰。同时,按照用户的要求,行内数学表达式用$...$,独立公式用$$...$$,但可能这部分在Python知识点中应用较少,不过如果有涉及数学的地方需要注意格式。 另外,用户要求生成相关问题,我需要根据整理的知识点提出相关问题,例如询问列表和元组的区别,如何实现多态,生成器的优点等,确保问题覆盖各个知识点,帮助用户进一步学习。 最后,检查引用标记是否正确添加,例如在继承和性能优化部分引用对应的引用源。确保回答结构清晰,分点明确,示例代码正确,并且相关问题有针对性。</think># Python编程语言全面知识点及示例代码 --- ## 一、基础语法 ### 1. 变量与数据型 ```python a = 10 # 整型 b = 3.14 # 浮点型 s = "Hello" # 字符串 lst = [1, 2, 3] # 列表 tpl = ("apple", 5) # 元组(不可修改)[^5] ``` ### 2. 运算符 ```python print(5 + 3 * 2) # 输出11 print(2**3) # 指数运算,输出8 print(7 % 3) # 取模,输出1 ``` --- ## 二、数据结构 ### 1. 列表操作 ```python colors = ["red", "green"] colors.append("blue") # 添加元素 print(colors[1:3]) # 切片输出['green', 'blue'] ``` ### 2. 字典与集合 ```python user = {"name": "Alice", "age": 25} # 字典 unique_nums = {1, 2, 2, 3} # 集合自动去重,结果为{1,2,3} ``` --- ## 三、控制结构 ### 1. 条件判断 ```python x = 15 if x > 10: print("大于10") elif x == 10: print("等于10") else: print("小于10") ``` ### 2. 循环结构 ```python # for循环 for i in range(3): print(i) # 输出0,1,2 # while循环 count = 0 while count < 2: print("循环中") count += 1 ``` --- ## 四、函数 ### 1. 函数定义 ```python def add(a, b): return a + b print(add(3,5)) # 输出8 ``` ### 2. lambda表达式 ```python square = lambda x: x**2 print(square(4)) # 输出16 ``` --- ## 五、面向对象编程 ### 1. 与继承 ```python class Animal: def speak(self): print("动物叫") class Dog(Animal): # 继承[^1] def speak(self): print("汪汪汪") d = Dog() d.speak() # 输出"汪汪汪" ``` ### 2. 多态特性 ```python class Cat(Animal): def speak(self): print("喵喵喵") def make_sound(animal): animal.speak() make_sound(Dog()) # 汪汪汪 make_sound(Cat()) # 喵喵喵 ``` --- ## 六、文件操作 ```python # 写入文件 with open("test.txt", "w") as f: f.write("Hello World") # 读取文件 with open("test.txt", "r") as f: content = f.read() print(content) # 输出Hello World ``` --- ## 七、高级特性 ### 1. 生成器 ```python def countdown(n): while n > 0: yield n n -= 1 for num in countdown(3): print(num) # 输出3,2,1 ``` ### 2. 装饰器 ```python def timer(func): def wrapper(): import time start = time.time() func() print(f"耗时:{time.time()-start:.2f}s") return wrapper @timer def test(): sum(range(1000000)) test() # 输出执行时间 ``` --- ## 八、常用库 ### 1. requests网络请求 ```python import requests response = requests.get("https://api.example.com/data") print(response.status_code) ``` ### 2. numpy数值计算 ```python import numpy as np arr = np.array([[1,2], [3,4]]) print(arr.T) # 转置矩阵 ``` --- ## 九、性能优化[^4] 1. **算法优化**:使用快速排序替代冒泡排序 2. **内存管理**:用生成器替代列表存储大数据 3. **代码优化**:优先使用内建函数`map()`替代显式循环 ```python # 列表推导式优化示例 squares = [x**2 for x in range(10)] # 优于显式循环 ``` --- ## 十、异常处理 ```python try: print(10/0) except ZeroDivisionError: print("除数不能为零") finally: print("执行结束") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值