강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của gjwogur122664
gjwogur122664

câu hỏi đã được viết

[Làm mới] Bootcamp SQL và Cơ sở dữ liệu (MySQL) cho người mới bắt đầu [Từ cơ bản đến ứng dụng]

함수 정의 질문

Viết

·

254

0

안녕하세요.
 
[실전] 크롤링과 데이터베이스 - DB와 프로그래밍 코드 작성과 팁2
3분 58 초 부분 질문이 있습니다.
 
파이참 코드 상단에는 라이브러리를 호출해주고 그 아래에
save_data 함수를 정의하는데 save_data 에는 execute 매소드
가 사용되는데 .. 우선 접속 객체가 먼저 정의되어 있어야
쓸 수 있는 게 아닌가요?
 
질문
함수 ''선언''을 할 때는 특정 매소드와 해당 매소드를 사용하는
객체가 정의되어 있지 않아도 되는 건가요?
 
제가 생각한 것은 아래와 같이 접속 객체를 먼저 정의해 주어야
save_data 함수에서 execute,fetchone() 매소드
문제 없이 실행될 것이라고 생각했습니다.
 
obj = connect(host='localhost', port=3306, user='root', passwd='oldcold12!!!', db='bestproducts', charset='utf8')
cus = obj.cursor()

def save_data(item_info):
print(item_info)
sql = """SELECT COUNT(*) FROM items WHERE item_code =""" + item_info['item_code']
cus.execute(sql)
result = cus.fetchone()
.
.
.

 
mysqlpythonsqlDBMS/RDBMS데이터 엔지니어링

Câu trả lời 2

0

gjwogur122664님의 프로필 이미지
gjwogur122664
Người đặt câu hỏi

빠른 답변 감사합니다!

0

funcoding님의 프로필 이미지
funcoding
Người chia sẻ kiến thức

아하 기본적으로는 지적하신 부분은 맞습니다.

원래대로 한다면, cursor 를 먼저 선언한 후, 함수 내에서 해당 cursor 를 전역 변수를 가져와서 쓰는 것처럼 쓰는 것이 맞긴 해요. 그런데, 파이썬에서 해당 함수 선언 후, 실제 함수 코드 실행은 해당 함수를 호출 했을 때, 비로소 실행이 되면서, 필요한 변수를 해당 라인 실행시 처리하니까요. 함수 호출 전에만 cursor 변수가 선언되어 있다면, 큰 문제는 없습니다.

 

Hình ảnh hồ sơ của gjwogur122664
gjwogur122664

câu hỏi đã được viết

Đặt câu hỏi