Hướng dẫn create function from string python - tạo hàm từ chuỗi python

Câu hỏi: Có cách nào để tạo một đối tượng hàm trong Python bằng cách sử dụng chuỗi không?make a function object in python using strings?


Thông tin: Tôi đang làm việc trên một dự án mà tôi lưu trữ dữ liệu trong phụ trợ máy chủ SQLite3. Không có gì để điên về điều đó. Một lớp DAL được thực hiện rất phổ biến thông qua việc tạo mã vì mã rất vô cùng trần tục. Nhưng điều đó đã cho tôi một ý tưởng. Trong Python khi không tìm thấy thuộc tính, nếu bạn xác định hàm __getattr__, nó sẽ gọi nó trước khi nó lỗi. Vì vậy, cách tôi hình dung nó, thông qua một trình phân tích cú pháp và cây logic tôi có thể tự động tạo mã tôi cần trong cuộc gọi đầu tiên của nó, sau đó lưu đối tượng hàm dưới dạng thuộc tính cục bộ. Ví dụ:

DAL.getAll()

#getAll() not found, call __getattr__

DAL.__getattr__(self,attrib)#in this case attrib = getAll

##parser logic magic takes place here and I end up with a string for a new function

##convert string to function

DAL.getAll = newFunc

return newFunc

Tôi đã thử chức năng biên dịch, nhưng EXEC và Eval không thỏa đáng về việc có thể hoàn thành loại kỳ tích này. Tôi cần một cái gì đó sẽ cho phép nhiều dòng chức năng. Có cách nào khác để làm điều này ngoài những điều đó không liên quan đến việc viết nó vào đĩa không? Một lần nữa tôi đang cố gắng tạo một đối tượng chức năng một cách linh hoạt.function object dynamically.

P.S .: Vâng, tôi biết điều này có vấn đề về an ninh và ổn định khủng khiếp. Vâng, tôi biết đây là một cách không hiệu quả khủng khiếp để làm điều này. Tôi có quan tâm không? không. Đây là một bằng chứng của khái niệm. "Python có thể làm điều này không? Nó có thể tạo một đối tượng chức năng tự động không?" là những gì tôi muốn biết, không phải là một số thay thế vượt trội. (Mặc dù cảm thấy thoải mái khi giải quyết các lựa chọn thay thế vượt trội sau khi bạn đã trả lời câu hỏi trong tay)function object?" is what I want to know, not some superior alternative. (though feel free to tack on superior alternatives after you've answered the question at hand)

Python cung cấp rất nhiều chức năng tích hợp để thao tác các chuỗi. Chuỗi Python là bất biến, vì vậy tất cả các chức năng này trả về một chuỗi mới và chuỗi ban đầu không thay đổi.

Chức năng chuỗi Python

Có nhiều chức năng để hoạt động trên chuỗi. Tuy nhiên, nó không khả thi để nhớ tất cả chúng. Vì vậy, ở đây tôi chia chúng thành các loại khác nhau.

  • Phải biết các chức năng chuỗi
  • Tốt để biết các chức năng chuỗi
  • Chức năng chuỗi linh tinh
  • Các chức năng tích hợp hoạt động trên chuỗi
  • Hoạt động chuỗi hữu ích

Phải biết các chức năng chuỗi

Hàm sốSự mô tả
định dạng()Nó được sử dụng để tạo một chuỗi được định dạng từ chuỗi mẫu và các giá trị được cung cấp.
tách ra()Chức năng phân chia chuỗi python được sử dụng để chia một chuỗi thành danh sách các chuỗi dựa trên dấu phân cách.
tham gia()Hàm này trả về một chuỗi mới là sự kết hợp của các chuỗi trong ITable với đối tượng chuỗi như một dấu phân cách.
dải ()Được sử dụng để cắt không gian trắng từ đối tượng chuỗi.
format_map ()Chuỗi Python format_map () Trả về một phiên bản được định dạng của chuỗi bằng cách sử dụng các thay thế từ ánh xạ được cung cấp.
phía trên()Chúng ta có thể chuyển đổi một chuỗi thành chữ hoa trong python bằng hàm str.upper ().
thấp hơn()Hàm này tạo ra một chuỗi mới trong chữ thường.
thay thế()Chức năng thay thế chuỗi python được sử dụng để tạo một chuỗi mới bằng cách thay thế một số phần của chuỗi khác.
tìm thấy()Phương thức Find () chuỗi python được sử dụng để tìm chỉ mục của một chuỗi con trong một chuỗi.
dịch()Chức năng Python String dịch () Trả về một chuỗi mới với mỗi ký tự trong chuỗi được thay thế bằng bảng dịch đã cho.

Tốt để biết các chức năng chuỗi

Hàm sốSự mô tả
định dạng()Nó được sử dụng để tạo một chuỗi được định dạng từ chuỗi mẫu và các giá trị được cung cấp.
tách ra()Chức năng phân chia chuỗi python được sử dụng để chia một chuỗi thành danh sách các chuỗi dựa trên dấu phân cách.
tham gia()Hàm này trả về một chuỗi mới là sự kết hợp của các chuỗi trong ITable với đối tượng chuỗi như một dấu phân cách.
dải ()Được sử dụng để cắt không gian trắng từ đối tượng chuỗi.
format_map ()Chuỗi Python format_map () Trả về một phiên bản được định dạng của chuỗi bằng cách sử dụng các thay thế từ ánh xạ được cung cấp.
phía trên()Chúng ta có thể chuyển đổi một chuỗi thành chữ hoa trong python bằng hàm str.upper ().
thấp hơn()Hàm này tạo ra một chuỗi mới trong chữ thường.
thay thế()Chức năng thay thế chuỗi python được sử dụng để tạo một chuỗi mới bằng cách thay thế một số phần của chuỗi khác.
tìm thấy()Phương thức Find () chuỗi python được sử dụng để tìm chỉ mục của một chuỗi con trong một chuỗi.
dịch()Chức năng Python String dịch () Trả về một chuỗi mới với mỗi ký tự trong chuỗi được thay thế bằng bảng dịch đã cho.

Chức năng chuỗi linh tinh

Hàm sốSự mô tả
định dạng()Nó được sử dụng để tạo một chuỗi được định dạng từ chuỗi mẫu và các giá trị được cung cấp.
tách ra()Chức năng phân chia chuỗi python được sử dụng để chia một chuỗi thành danh sách các chuỗi dựa trên dấu phân cách.
tham gia()Hàm này trả về một chuỗi mới là sự kết hợp của các chuỗi trong ITable với đối tượng chuỗi như một dấu phân cách.
dải ()Được sử dụng để cắt không gian trắng từ đối tượng chuỗi.
format_map ()Chuỗi Python format_map () Trả về một phiên bản được định dạng của chuỗi bằng cách sử dụng các thay thế từ ánh xạ được cung cấp.
phía trên()Chúng ta có thể chuyển đổi một chuỗi thành chữ hoa trong python bằng hàm str.upper ().
thấp hơn()Hàm này tạo ra một chuỗi mới trong chữ thường.
thay thế()Chức năng thay thế chuỗi python được sử dụng để tạo một chuỗi mới bằng cách thay thế một số phần của chuỗi khác.
tìm thấy()Phương thức Find () chuỗi python được sử dụng để tìm chỉ mục của một chuỗi con trong một chuỗi.
dịch()Chức năng Python String dịch () Trả về một chuỗi mới với mỗi ký tự trong chuỗi được thay thế bằng bảng dịch đã cho.
Tốt để biết các chức năng chuỗimã hóa ()
Chức năng Python String Encode () được sử dụng để mã hóa chuỗi bằng mã hóa được cung cấp.đếm()
Chức năng Python String Count () trả về số lần xuất hiện của chuỗi con trong chuỗi đã cho.bắt đầu với()
Chức năng String String stepsWith () trả về đúng nếu chuỗi bắt đầu bằng tiền tố đã cho, nếu không nó sẽ trả về sai.endswith ()
Chức năng python string endSwith () trả về true nếu chuỗi kết thúc bằng hậu tố đã cho, nếu không nó sẽ trả về sai.Viết hoa ()
Chức năng Python Capitalize () trả về phiên bản viết hoa của chuỗi.trung tâm()
zfill ()Chức năng Python String Zfill (Width) Trả về một chuỗi mới có chiều rộng được chỉ định. Chuỗi được lấp đầy bằng 0 ở phía bên trái để tạo chiều rộng được chỉ định.

Các chức năng tích hợp hoạt động trên chuỗi

Hàm sốSự mô tả
Len ()Độ dài chuỗi Python có thể được xác định bằng cách sử dụng hàm len () tích hợp.
ascii ()Hàm python ascii () trả về biểu diễn chuỗi của đối tượng. Hàm này gọi hàm repr () và trước khi trả về chuỗi đại diện, thoát khỏi các ký tự không phải ASCII bằng cách sử dụng \ x, \ u hoặc \ u thoát ra.
bool ()Hàm Python bool () trả về giá trị boolean cho một đối tượng. Lớp Bool chỉ có hai trường hợp - đúng và sai.
bytearray ()Hàm Python bytearray () trả về một đối tượng bytearray chứa mảng byte từ nguồn đầu vào.
byte ()Hàm này trả về đối tượng byte là một chuỗi số nguyên bất biến trong phạm vi 0
ord ()Chức năng Python ord () lấy đối số chuỗi của một ký tự unicode duy nhất và trả về giá trị điểm mã unicode số nguyên của nó.
liệt kê ()Chức năng liệt kê Python có một chuỗi, và sau đó làm cho mỗi phần tử của chuỗi thành một tuple.
trôi nổi()Như tên đã nói, hàm python float () trả về một số điểm nổi từ đối số đầu vào.
băm ()Hàm này trả về giá trị băm của đối tượng đã cho.
Tôi()Hàm Python ID () trả về danh tính của người dùng của đối tượng. Danh tính của một đối tượng là một số nguyên, được đảm bảo là duy nhất và không đổi cho đối tượng này trong suốt vòng đời của nó.
int ()Hàm python int () trả về một đối tượng số nguyên từ đầu vào được chỉ định. Đối tượng INT được trả về sẽ luôn nằm trong cơ sở 10.
bản đồ()Hàm python map () được sử dụng để áp dụng một hàm trên tất cả các phần tử của đối tượng bản đồ có thể lặp lại và trả về.
in()Hàm python print () được sử dụng để in dữ liệu vào bảng điều khiển.
lát cắt()Hàm Python Slice () Trả về một đối tượng lát cắt biểu thị tập hợp các chỉ số được chỉ định theo phạm vi (bắt đầu, dừng, bước).
loại hình()Hàm này trả về loại đối tượng.

Hoạt động chuỗi hữu ích

  • F -String trong Python - Cách định dạng mới và tốt hơn được giới thiệu trong Python 3.6.
  • Chất nền trong Python
  • Tạo chuỗi ngẫu nhiên
  • Mô -đun chuỗi Python
  • Chuỗi thô
  • Chuỗi đa dòng
  • Chuỗi kiểm tra bình đẳng
  • So sánh chuỗi
  • Kết hợp chuỗi
  • Chuỗi cắt
  • Đảo ngược một chuỗi
  • Chuỗi thành DateTime - Strptime ()
  • Chuyển đổi chuỗi thành int
  • Chuyển đổi chuỗi thành byte
  • Chuyển đổi chuỗi thành float
  • Chuyển đổi danh sách thành chuỗi
  • Chuỗi lớp mẫu
  • Kiểm tra nếu biến là chuỗi?
  • Chuỗi concatenate và int
  • Xóa ký tự khỏi chuỗi
  • Cách nối dây
  • Tìm chuỗi trong danh sách
  • Xóa khoảng trống khỏi chuỗi

Tôi có cần nhớ tất cả chúng không?

Không ai có thể nhớ tất cả trong số họ. Bạn luôn có thể tìm thấy chúng trong IDE của bạn. Hình ảnh dưới đây là từ tệp pycharm ide buildins.py của tôi.

Hướng dẫn create function from string python - tạo hàm từ chuỗi python
Chức năng chuỗi Python - Pycharm

Tôi đã liệt kê tất cả các phương thức chuỗi Python chưa?

Tôi đã liệt kê gần như tất cả các phương thức chuỗi Python quan trọng. Tuy nhiên, một số trong số họ có thể đã bỏ lỡ. Danh sách này được cập nhật cho đến Python 3.7. Vì vậy, bất kỳ chức năng nào xuất hiện trong các bản phát hành sau không được liệt kê ở đây, ít nhất là không phải ngay bây giờ. Nếu bạn nghĩ rằng tôi đã bỏ lỡ một số chức năng quan trọng, vui lòng trả lời trong các bình luận và tôi cũng sẽ thêm chúng.

Bạn có thể sử dụng một chuỗi để gọi một hàm không?

Có hai phương thức để gọi một hàm từ chuỗi được lưu trữ trong một biến.Chế độ đầu tiên là bằng cách sử dụng phương thức đối tượng cửa sổ và phương thức thứ hai là bằng cách sử dụng phương thức eval ().. The first one is by using the window object method and the second one is by using eval() method.

Một chức năng có thể lấy một python chuỗi?

Miễn là bạn ghi lại điều này đúng cách, yêu cầu người dùng chuyển một chuỗi vào đầu vào chức năng sẽ không gây ra mối quan tâm hoặc vấn đề.Đây là tiêu chuẩn trong tất cả các hàm Python chấp nhận đầu vào chuỗi.This is standard in all Python functions that accept a string input.

Chức năng chuỗi trong Python với ví dụ là gì?

Danh sách các chức năng chuỗi được sử dụng thường xuyên.